Files
whdwo798 bbcb935bf3 공휴일 스케줄러 스킵 추가 — holidays 라이브러리 활용
- scripts/_is_trading_day.py 신규: 한국 공휴일+대체공휴일 판단 (exit 0=거래일, 1=휴장)
  * holidays.SouthKorea() 기반, 제헌절(7/17) 오탐 제외 처리
- run_morning/midday/evening/bot.ps1: 스크립트 상단에 공휴일 체크 추가
  * 휴장일이면 로그 기록 후 즉시 종료 (Claude/봇 미실행)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-26 14:55:12 +09:00

47 lines
1.1 KiB
Python

"""
한국 주식 시장 거래일 여부 확인
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)