Files
Stock-trading-programming/scripts/_is_trading_day.py
T

47 lines
1.1 KiB
Python
Raw Normal View History

"""
한국 주식 시장 거래일 여부 확인
exit code 0 = 거래일, 1 = 휴장일
사용:
python scripts/_is_trading_day.py
if ($LASTEXITCODE -ne 0) { exit }
"""
import sys
from datetime import date
import holidays
# 라이브러리가 포함하지만 KRX는 개장하는 날 (2008년 이후 제헌절)
_KRX_OPEN_OVERRIDES = {
(7, 17), # 제헌절 — 2008년부터 공휴일 제외, 장 열림
}
def is_trading_day(d: date = None) -> tuple[bool, str]:
if d is None:
d = date.today()
# 주말
if d.weekday() >= 5:
return False, "주말"
kr = holidays.SouthKorea(years=d.year)
if d in kr:
name = kr[d]
# KRX 개장 예외 날짜는 무시
if (d.month, d.day) in _KRX_OPEN_OVERRIDES:
return True, f"개장 (라이브러리 오류 무시: {name})"
return False, name
return True, "거래일"
if __name__ == "__main__":
today = date.today()
trading, reason = is_trading_day(today)
if trading:
print(f"[거래일] {today}{reason}")
sys.exit(0)
else:
print(f"[휴장일] {today}{reason}")
sys.exit(1)