假期日历、文件格式等
我想找一种方法来判断某个日期是否是“假期”,这需要参考一些假期日历。
具体来说,你可以用 is_holiday (datetime.date, "USA")
这样的方式来检查某个日期在名为“USA”的假期日历中是否是个假期。
我知道,要对所有年份的所有假期进行判断并不是一件简单的事。比如,圣诞节总是12月25日,但在联邦政府的规定下,有时候我们会在12月24日庆祝(也就是说,这一天不是工作日),有时候则是在12月26日。同样,犹太节日每年也会根据公历的变化而变化。
我并不想要每个假期的具体计算。我更想知道是否有一种被广泛接受的标准文件格式,可以按年份列出假期。如果有的话,是否有一些模块可以在Python中使用,或者其他语言也行,能够理解这种格式。同时,这种文件格式还会定义周末,通常是周六和周日,但在某些地区可能是周五和周六等等。
4 个回答
2
另一个很不错、信息全面的假期数据来源是KDE的kholidays:
想了解更多,可以访问 http://community.kde.org/KDE_PIM/KHolidays
2
经典的 holiday.py 模块(属于一个比较老的 dateutil
包——这个包已经老到需要用 time
模块,而不是相对较新的 datetime
!)在日历计算方面做得不错(包括犹太历和公历之间的转换),但它不处理持久化的问题(也就是读取或写入数据)。
正如 @Brian 的回答所提到的,ics
是文件中“日历”的主要格式(这种格式中还有假期文件等)。要在 Python 中读取和写入 ics 文件,你可以使用 iCalendar 包,它正好可以完成这个任务,或者使用 vobject,这个包功能更广泛,支持 vCard 和 vCalendar 格式(包括 iCalendar)。