python判断2018年的某天是否是节假日


网上找了半天也没找到可用的,没一个省心的。
无奈之下只好自己动手,丰衣足食!

hol:节日,work:被调休的工作日

返回结果:

  • -1:报错
  • 0: 工作日
  • 1: 周末
  • 2: 节日
"""
Author: deepinwst
Email: movingheart000@gmail.com
Date: 18-11-20 下午1:56
"""

import datetime
import time

def holiday(d, s="2018-01-01", e="2018-12-31"):
    hol = {"2018-01-01", "2018-02-15", "2018-02-16", "2018-02-17", "2018-02-18", "2018-02-19", "2018-02-20",
           "2018-02-21", "2018-04-05", "2018-04-06", "2018-04-07", "2018-04-29", "2018-04-30", "2018-05-01"
           "2018-06-16", "2018-06-17", "2018-06-18", "2018-09-22", "2018-09-23", "2018-09-24", "2018-10-01",
           "2018-10-02", "2018-10-03", "2018-10-04", "2018-10-05", "2018-10-06", "2018-10-07", "2018-12-30",
           "2018-12-31"}
    work = {"2018-02-11", "2018-02-24", "2018-04-08", "2018-04-28", "2018-09-29", "2018-09-30", "2018-12-29"}
    s1 = datetime.datetime.strptime(s, '%Y-%m-%d')
    e1 = datetime.datetime.strptime(e, '%Y-%m-%d')
    if not isinstance(d, str):
        print("Please input string date")
        return -1
    else:
        d1 = datetime.datetime.strptime(d, '%Y-%m-%d')
        if d1 > e1 or d1 < s1:
            print("not in 2018 year")
            return -1
        elif d in hol:
            return 2
        elif d in work:
            return 0
        elif d1.weekday() in (5, 6):
            return 1
        else:
            return 0


if __name__ == "__main__":
    day = "2018-10-14"
    print(holiday(day))


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM