假日日历,文件格式,

2024-04-26 19:08:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我在寻找一种方法来确定给定的日期是否是“假日”,给定一些假日日历。

具体来说,您可以说is_holiday (datetime.date, "USA"),这将回答给定日期是否是名为“USA”的日历的假日

我认识到,多年来,在所有的假日里,都没有这种琐碎的方式。例如,虽然圣诞节总是12月25日,但出于联邦政府的目的,有时我们会在12月24日庆祝(即,这不是工作日),有时会在26日庆祝。类似地,犹太节日(例如)每年都会迁移(相对于公历)。

我不是在找每个假期的计算结果。我想知道是否有一些可接受的标准文件格式按年列出假日,如果有,是否有任何模块-特别是在Python中,但我很灵活-了解如何阅读所述格式。类似地,文件格式将定义周末-通常是周六和周日,但在某些地区可能是周五和周六等


Tags: 模块方法目的标准datetimedateis格式
3条回答

另一个好的、全面的假日数据来源是KDE的kholidays:

有关http://community.kde.org/KDE_PIM/KHolidays的详细信息

Mozilla有一组user-contributed holiday filesin.ics格式。这可能会让你开始。不幸的是,他们的约会范围不同。iCalShare还有.ics格式的假日日历。

注意:

Some holidays are state or region-related, rather than country-related.

我在过去发现,分级方法是可行的。e、 检查城市假日日历,然后一个州日历,然后一个国家日历。

有一个Python模块用于读取名为icalendar(也在pypi)的.ics文件。不幸的是,我不能保证它的质量。

经典的holiday.py模块(旧的dateutil包的一部分——旧到可以依赖模块time,而不是相对较新的datetime!)能很好地计算日历(包括犹太日历的翻译),但不涉及持久性(读或写)。

正如@Brian的回答所表明的,ics是文件中“日历”的主要格式(还有假日文件等)。例如,要在Python中读写ics文件,可以使用iCalendar包(它正好执行该任务),或者vobject包(它是一个更广泛的包,支持vCard和vCalendar格式的范围(包括iCalendar)。

相关问题 更多 >