Package: jpholiday
JPHoliday日本の祝日を取得するライブラリInstallationpipinstalljpholidaySample Code指定日の祝日名を取得importjpholidayimportdatetime# datetime.datejpholiday.is_holiday_name(datetime.date(2017,1,1))>'元日'jpholiday.is_holiday_name(datetime.date(2017,1,2))>'元日 振替休日'jpholiday.is_holiday_name(datetime.date(2017,1,3))>None# datetime.datetimejpholiday.is_holiday_name(datetime.datetime(2017,1,1,1,1,1))>'元日'jpholiday.is_holiday_name(datetime.datetime(2017,1,2,1,1,1))>'元日 振替休日'jpholiday.is_holiday_name(datetime.datetime(2017,1,3,1,1,1))>None指定日が祝日か判定importjpholidayimportdatetime# datetime.datejpholiday.is_holiday(datetime.date(2017,1,1))>Truejpholiday.is_holiday(datetime.date(2017,1,2))>Truejpholiday.is_holiday(datetime.date(2017,1,3))>False# datetime.datetimejpholiday.is_holiday(datetime.datetime(2017,1,1,1,1,1))>Truejpholiday.is_holiday(datetime.datetime(2017,1,2,1,1,1))>Truejpholiday.is_holiday(datetime.datetime(2017,1,3,1,1,1))>False指定年の祝日を取得importjpholidayjpholiday.year_holidays(2017)>[(datetime.date(2017,1,1),'元日'),(datetime.date(2017,1,2),'元日 振替休日'),(datetime.date(2017,1,9),'成人の日'),(datetime.date(2017,2,11),'建国記念の日'),(datetime.date(2017,3,20),'春分の日'),(datetime.date(2017,4,29),'昭和の日'),(datetime.date(2017,5,3),'憲法記念日'),(datetime.date(2017,5,4),'みどりの日'),(datetime.date(2017,5,5),'こどもの日'),(datetime.date(2017,7,17),'海の日'),(datetime.date(2017,8,11),'山の日'),(datetime.date(2017,9,18),'敬老の日'),(datetime.date(2017,9,23),'秋分の日'),(datetime.date(2017,10,9),'体育の日'),(datetime.date(2017,11,3),'文化の日'),(datetime.date(2017,11,23),'勤労感謝の日'),(datetime.date(2017,12,23),'天皇誕生日')]指定月の祝日を取得importjpholidayjpholiday.month_holidays(2017,5)>[(datetime.date(2017,5,3),'憲法記念日'),(datetime.date(2017,5,4),'みどりの日'),(datetime.date(2017,5,5),'こどもの日')]指定範囲の祝日を取得importjpholidayimportdatetime# datetime.datejpholiday.between(datetime.date(2017,1,1),datetime.date(2017,5,3))>[(datetime.date(2017,1,1),'元日'),(datetime.date(2017,1,2),'元日 振替休日'),(datetime.date(2017,1,9),'成人の日'),(datetime.date(2017,2,11),'建国記念の日'),(datetime.date(2017,3,20),'春分の日'),(datetime.date(2017,4,29),'昭和の日'),(datetime.date(2017,5,3),'憲法記念日')]# datetime.datetimejpholiday.between(datetime.datetime(2017,1,1,3,15,0),datetime.datetime(2017,5,3,12,30,12))>[(datetime.date(2017,1,1),'元日'),(datetime.date(2017,1,2),'元日 振替休日'),(datetime.date(2017,1,9),'成人の日'),(datetime.date(2017,2,11),'建国記念の日'),(datetime.date(2017,3,20),'春分の日'),(datetime.date(2017,4,29),'昭和の日'),(datetime.date(2017,5,3),'憲法記念日')]独自の休日を追加importjpholidayimportdatetimeclassTestHoliday(jpholiday.OriginalHoliday):def_is_holiday(self,date):ifdate==datetime.date(2020,2,9):returnTruereturnFalsedef_is_holiday_name(self,date):return'特別休暇'jpholiday.is_holiday_name(datetime.date(2020,2,9))>'特別休暇'jpholiday.is_holiday(datetime.date(2020,2,9))>True独自の休日を削除importjpholidayimportdatetimejpholiday.OriginalHoliday.unregister(TestHoliday)Example独自の休日をファイルから読み込むimportjpholidayimportconfigparserclassTestHoliday(jpholiday.OriginalHoliday):original_holidays={}config=configparser.ConfigParser()config.read('holidays.ini')if'HOLIDAYS'inconfig:original_holidays=config['HOLIDAYS']def_is_holiday(self,date):ifdatein[datetime.strptime(holiday,'%Y-%m-%d').date()forholidayinself.original_holidays.keys()]:returnTruereturnFalsedef_is_holiday_name(self,date):ifdate.strftime('%Y-%m-%d')inself.original_holidays.keys():returnself.original_holidays[date.strftime('%Y-%m-%d')]else:returnNone'holidays.ini'[HOLIDAYS]2021-02-22:特別休暇12021-02-24:特別休暇2jpholiday.is_holiday(datetime.date(2021,2,22))>Truejpholiday.is_holiday_name(datetime.date(2021,2,22))>特別休暇1