我在寻找一种方法来确定给定的日期是否是“假日”,给定一些假日日历。
具体来说,您可以说is_holiday (datetime.date, "USA")
,这将回答给定日期是否是名为“USA”的日历的假日
我认识到,多年来,在所有的假日里,都没有这种琐碎的方式。例如,虽然圣诞节总是12月25日,但出于联邦政府的目的,有时我们会在12月24日庆祝(即,这不是工作日),有时会在26日庆祝。类似地,犹太节日(例如)每年都会迁移(相对于公历)。
我不是在找每个假期的计算结果。我想知道是否有一些可接受的标准文件格式按年列出假日,如果有,是否有任何模块-特别是在Python中,但我很灵活-了解如何阅读所述格式。类似地,文件格式将定义周末-通常是周六和周日,但在某些地区可能是周五和周六等
另一个好的、全面的假日数据来源是KDE的kholidays:
有关http://community.kde.org/KDE_PIM/KHolidays的详细信息
Mozilla有一组user-contributed holiday filesin.ics格式。这可能会让你开始。不幸的是,他们的约会范围不同。iCalShare还有.ics格式的假日日历。
注意:
我在过去发现,分级方法是可行的。e、 检查城市假日日历,然后一个州日历,然后一个国家日历。
有一个Python模块用于读取名为icalendar(也在pypi)的.ics文件。不幸的是,我不能保证它的质量。
经典的holiday.py模块(旧的
dateutil
包的一部分——旧到可以依赖模块time
,而不是相对较新的datetime
!)能很好地计算日历(包括犹太日历的翻译),但不涉及持久性(读或写)。正如@Brian的回答所表明的,
ics
是文件中“日历”的主要格式(还有假日文件等)。例如,要在Python中读写ics文件,可以使用iCalendar包(它正好执行该任务),或者vobject包(它是一个更广泛的包,支持vCard和vCalendar格式的范围(包括iCalendar)。相关问题 更多 >
编程相关推荐