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