1. FlyPython首页
  2. Python入门

感恩节:我们来计算感恩节日期

今天是感恩节,在此感谢大家的关注。

西方传统的节日很多并不是具体的某个日期,而是以当月的第几周星期几来确定,所以每年的日期会不一样,今天带来节日的日期计算包,希望大家喜欢。

Borax介绍

Borax是一个Pyton3开发工具集合,里面有一些常见的工具,数据结构和函数封装。

今天将使用Borax.Calendars这个计算库来计算节日。

安装Borax:

pip install borax

节日库

borax.calendars.festivals是节日的计算库,里面有多种类可以使用。

  • DateSchema 日期模式
  • SolarSchema 公历日期
  • WeekSchema 依赖星期公历日期
  • TermSchema 依赖节气的公历日期
  • LunarSchema 农历日期
  • DayLunarSchema 依赖具体日的农历日期

在这里我们是依赖星期来计算公历日期,会使用到WeekSchema这个类

感恩节日期

首先,我们导入WeekSchema这个类

from borax.calendars.festivals import WeekSchema

WeekSchema的初始化如下:

WeekSchema(month, index, week, year=YEAR_ANY, kwargs)

具体参数解释

美国的感恩节是11月的第四周星期四,具体调用如下:

m=WeekSchema(month=11,index=4,week=3)

  • 11 表示11月
  • 4 表示 第四周
  • 3 表示 星期四

如果想要知道2019年的感恩节日期,可以使用resolve方法

>>> from borax.calendars.festivals import WeekSchema
>>> m = WeekSchema(month=11,index=4,week=3)
>>> m.resolve(2019)
datetime.date(2019, 11, 28)

加拿大的感恩节是十月第二个星期一,那么今年的日期为:

>>> m = WeekSchema(month=10,index=2,week=2)
>>> m.resolve(2019)
datetime.date(2019, 10, 14)

如果你身在加拿大,就已经提前吃火鸡啦。

总结

festivals节日包还可以做很多具体的应用,包括计算节日的距离天数等。其他的方法可以参考官方文档。

原创文章,作者:flypython,如若转载,请注明出处:http://flypython.com/tutorial/123.html