리그캣의 개발놀이터

[python / python3] 휴일 / 공휴일 여부 확인 본문

프로그래밍 언어/Python

[python / python3] 휴일 / 공휴일 여부 확인

리그캣 2020. 1. 28. 00:06

 

개인적으로 팀내 사람들 일정을 크롤링해서 slack 또는 mattermost같은 sns에 매일 아침에 알림을 주는 챗봇을 구축했다.

 

심심해서 개인시간에 구축했던것인데 그것이 반응이 조금은(?) 괜찮아서 어쩌다보니 유지보수를 해야하는데 시간이 없었다.

그러나 한참 설날 휴일을 보내고 있었는데 알림이 왔다. 휴일시 예외처리를 해야하는데 그것도 안해놓은 하드코딩...

 

그래서 휴일을 체크해주는 모듈을 개발하였다.

먼저 pip로 사용하는 방법은 아래에 공유한다.(코딩을 못하기에 이해바람..ㅜㅜ)

https://github.com/league3236/shholiday

 

league3236/shholiday

대한민국 2020년 월일을 입력했을때, 휴일이면 true 휴일이 아니면 false를 반환합니다. - league3236/shholiday

github.com

핵심코드는 간단하다.
날짜들을 입력해놓고, 지금 월, 일을 tuple로 묶어서 비교하고 true인지 false인지만 판단해서 보내준다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from datetime import date, datetime
 
MON, TUE, WED, THU, FRI, SAT, SUN = range(7)
 
class holiday2020():
    HOLIDAYS = ((11), #"new Year"
                (124), #"new Year"
                (125), #"new Year1"
                (126), #"new Year2"
                (31), #"3.1"
                (430), #"Buddha Day"
                (55), #"Children's Day"
                (66), #"Memorial Day"
                (815), #"Liberation Day"
                (930), #"Thanksgiving"
                (101), #"Thanksgiving1"
                (102), #"Thanksgiving2"
                (103), #"National Foundation Day"
                (109), #"Hangul Day"
                (1225#"Christmas"
                )
 
    def is_holiday(self, daytuple):
        HOLIDAYS = self.HOLIDAYS
        if daytuple in HOLIDAYS:
            return True
        else:
            return False
 
if __name__=='__main__':
    now = datetime.now()
    daytuple = (str(now.month),str(now.day))
 
    nowholiday = holiday2020()
    print(nowholiday.is_holiday(daytuple))
http://colorscripter.com/info#e" target="_blank" style="text-decoration:none;color:white">cs

 

 

참고 : 

https://kkumalog.tistory.com/30

https://pypi.org/project/workalendar/

Comments