项目作者: noanti

项目描述 :
中国假期安排的yaml格式,方便各种语言解析使用。
高级语言: Python
项目地址: git://github.com/noanti/chinese_holiday.git
创建时间: 2020-04-09T06:07:17Z
项目社区:https://github.com/noanti/chinese_holiday

开源协议:

下载


中国假期安排

将国务院放假安排格式化为yaml格式,方便各种语言直接解析使用。

详见festival_arrangements.yaml

附带了python的解析实现。

安装

  1. pip install git+https://github.com/noanti/chinese_holiday.git@master

使用

  1. import datetime
  2. from chinese_holiday import is_tiaoxiu, is_rest, is_holiday
  3. # 以2018年为例
  4. # http://www.gov.cn/zhengce/content/2017-11/30/content_5243579.htm
  5. # 一、元旦:1月1日放假,与周末连休。
  6. # 二、春节:2月15日至21日放假调休,共7天。2月11日(星期日)、2月24日(星期六)上班。
  7. # 三、清明节:4月5日至7日放假调休,共3天。4月8日(星期日)上班。
  8. # 四、劳动节:4月29日至5月1日放假调休,共3天。4月28日(星期六)上班。
  9. # 五、端午节:6月18日放假,与周末连休。
  10. # 六、中秋节:9月24日放假,与周末连休。
  11. # 七、国庆节:10月1日至7日放假调休,共7天。9月29日(星期六)、9月30日(星期日)上班。
  12. holiday, holiday_name = is_holiday(datetime.date(2017, 12, 29)) # False, None
  13. holiday, holiday_name = is_holiday(datetime.date(2017, 12, 30)) # True, '元旦'
  14. holiday, holiday_name = is_holiday(datetime.date(2017, 12, 31)) # True, '元旦'
  15. holiday, holiday_name = is_holiday(datetime.date(2018, 1, 1)) # True, '元旦'
  16. holiday, holiday_name = is_holiday(datetime.date(2018, 1, 2)) # False, None
  17. day = datetime.date(2018, 2, 11)
  18. while day <= datetime.date(2018, 2, 24):
  19. print('{} is_holiday: {} is_tiaoxiu: {} is_rest:{}'.format(
  20. day.strftime('%Y-%m-%d'), is_holiday(day), is_tiaoxiu(day), is_rest(day)
  21. ))
  22. day = day + datetime.timedelta(days=1)
  1. 2018-02-11 is_holiday: (False, None) is_tiaoxiu: (True, '春节') is_rest:False
  2. 2018-02-12 is_holiday: (False, None) is_tiaoxiu: (False, None) is_rest:False
  3. 2018-02-13 is_holiday: (False, None) is_tiaoxiu: (False, None) is_rest:False
  4. 2018-02-14 is_holiday: (False, None) is_tiaoxiu: (False, None) is_rest:False
  5. 2018-02-15 is_holiday: (True, '春节') is_tiaoxiu: (False, None) is_rest:True
  6. 2018-02-16 is_holiday: (True, '春节') is_tiaoxiu: (False, None) is_rest:True
  7. 2018-02-17 is_holiday: (True, '春节') is_tiaoxiu: (False, None) is_rest:True
  8. 2018-02-18 is_holiday: (True, '春节') is_tiaoxiu: (False, None) is_rest:True
  9. 2018-02-19 is_holiday: (True, '春节') is_tiaoxiu: (False, None) is_rest:True
  10. 2018-02-20 is_holiday: (True, '春节') is_tiaoxiu: (False, None) is_rest:True
  11. 2018-02-21 is_holiday: (True, '春节') is_tiaoxiu: (False, None) is_rest:True
  12. 2018-02-22 is_holiday: (False, None) is_tiaoxiu: (False, None) is_rest:False
  13. 2018-02-23 is_holiday: (False, None) is_tiaoxiu: (False, None) is_rest:False
  14. 2018-02-24 is_holiday: (False, None) is_tiaoxiu: (True, '春节') is_rest:False

注意

  1. 有几年的国庆和中秋假期是相连的,在实际数据分析中区分这两种假的意义不大,也不太好区分,所以提供了一个新的”国庆+中秋”假期类型。
  2. 有的假期可能与周末相连,相连的周末也算在假期内。
  3. 调休(is_tiaoxiu)的含义为本该休息但因假期安排改成上班的日子。