用python计算节假日

盼盼 发布于 2012-03-05 09:34:30,分类:常用方法,0评/1521阅
 
摘自http://groups.google.com/group/python-cn/browse_thread/thread/485803e886791354
用空间换时间,一个数据集合来存放节假日,程序只需要进行判断,不关心是否节假日,节假日的管理独立处理,毕竟每年的都不一样。

[Python]代码片段

class Festival(): 
    #国历节日 *表示放假日 
    def solar_Fstv(solar_month, solar_day): 
        sFtv = [ 
        "0101#元旦节#", 
        "0202#世界湿地日#", 
        "0210#国际气象节#", 
        "0214#情人节#", 
        "0301#国际海豹日#", 
        "0303#全国爱耳日#", 
        "0305#学雷锋纪念日#", 
        "0308#妇女节#", 
        "0312#植树节# #孙中山逝世纪念日#", 
        "0314#国际警察日#", 
        "0315#消费者权益日#", 
        "0317#中国国医节# #国际航海日#", 
        "0321#世界森林日# #消除种族歧视国际日# #世界儿歌日#", 
        "0322#世界水日#", 
        "0323#世界气象日#", 
        "0324#世界防治结核病日#", 
        "0325#全国中小学生安全教育日#", 
        "0330#巴勒斯坦国土日#", 
        "0401#愚人节# #全国爱国卫生运动月(四月)# #税收宣传月(四月)#", 
        "0407#世界卫生日#", 
        "0422#世界地球日#", 
        "0423#世界图书和版权日#", 
        "0424#亚非新闻工作者日#", 
        "0501#劳动节#", 
        "0504#青年节#", 
        "0505#碘缺乏病防治日#", 
        "0508#世界红十字日#", 
        "0512#国际护士节#", 
        "0515#国际家庭日#", 
        "0517#国际电信日#", 
        "0518#国际博物馆日#", 
        "0520#全国学生营养日#", 
        "0523#国际牛奶日#", 
        "0531#世界无烟日#", 
        "0601#国际儿童节#", 
        "0605#世界环境保护日#", 
        "0606#全国爱眼日#", 
        "0617#防治荒漠化和干旱日#", 
        "0623#国际奥林匹克日#", 
        "0625#全国土地日#", 
        "0626#国际禁毒日#", 
        "0701#中国共产党诞辰# #香港回归纪念日# #世界建筑日#", 
        "0702#国际体育记者日#", 
        "0707#抗日战争纪念日#", 
        "0711#世界人口日#", 
        "0730#非洲妇女日#", 
        "0801#建军节#", 
        "0808#中国男子节(爸爸节)#", 
        "0815#抗日战争胜利纪念#", 
        "0908#国际扫盲日# #国际新闻工作者日#", 
        "0909#毛泽东逝世纪念#", 
        "0910#中国教师节#", 
        "0914#世界清洁地球日#", 
        "0916#国际臭氧层保护日#", 
        "0918#九·一八事变纪念日#", 
        "0920#国际爱牙日#", 
        "0927#世界旅游日#", 
        "0928#孔子诞辰#", 
        "1001#国庆节# #世界音乐日# #国际老人节#", 
        "1002#国庆节假日# #国际和平与民主自由斗争日#", 
        "1003#国庆节假日#", 
        "1004#世界动物日#", 
        "1006#老人节#", 
        "1008#全国高血压日# #世界视觉日#", 
        "1009#世界邮政日# #万国邮联日#", 
        "1010#辛亥革命纪念日# #世界精神卫生日#", 
        "1013#世界保健日# #国际教师节#", 
        "1014#世界标准日#", 
        "1015#国际盲人节(白手杖节)#", 
        "1016#世界粮食日#", 
        "1017#世界消除贫困日#", 
        "1022#世界传统医药日#", 
        "1024#联合国日#", 
        "1031#世界勤俭日#", 
        "1107#十月社会主义革命纪念日#", 
        "1108#中国记者日#", 
        "1109#全国消防安全宣传教育日#", 
        "1110#世界青年节#", 
        "1111#国际科学与和平周(本日所属的一周)#", 
        "1112#孙中山诞辰纪念日#", 
        "1114#世界糖尿病日#", 
        "1116#国际宽容日#", 
        "1117#国际大学生节# #世界学生节#", 
        "1120#彝族年#", 
        "1121#彝族年# #世界问候日# #世界电视日#", 
        "1122#彝族年#", 
        "1129#国际声援巴勒斯坦人民国际日#", 
        "1201#世界艾滋病日#", 
        "1203#世界残疾人日#", 
        "1205#国际经济和社会发展志愿人员日#", 
        "1208#国际儿童电视日#", 
        "1209#世界足球日#", 
        "1210#世界人权日#", 
        "1212#西安事变纪念日#", 
        "1213#南京大屠杀(1937年)纪念日#", 
        "1220#澳门回归纪念#", 
        "1221#国际篮球日#", 
        "1224#平安夜#", 
        "1225#圣诞节#", 
        "1226#毛·泽东诞辰纪念日#" 
        ] 
    def lunar_Fstv(lunar_month, lunar_day): 
        #农历节日 *表示放假日 
        #每年单独来算 
        lFtv = [ 
        "0101#春节#", 
        "0115#元宵节#", 
        "0202#春龙节", 
        #"0314#清明节#", #每年不一样,此为2012年,事实上为公历节日 
        "0505#端午节#", 
        "0707#七夕情人节#", 
        "0715#中元节#", 
        "0815#中秋节#", 
        "0909#重阳节#", 
        "1208#腊八节#", 
        "1223#小年#", 
        "1229#除夕#"   #每年不一样,此为2011年 
        ] 
    #国历节日 *表示放假日 
    def weekday_Fstv(solar_month, solar_day, solar_weekday): 
        #某月的第几个星期几 
        wFtv = [ 
        "0150#世界防治麻风病日#", #一月的最后一个星期日(月倒数第一个星期日) 
        "0520#国际母亲节#", 
        "0530#全国助残日#", 
        "0630#父亲节#", 
        "0730#被奴役国家周#", 
        "0932#国际和平日#", 
        "0940#国际聋人节# #世界儿童日#", 
        "0950#世界海事日#", 
        "1011#国际住房日#", 
        "1013#国际减轻自然灾害日(减灾日)#", 
        "1144#感恩节#"] 
        #无法计算某些最后一个星期几的情况,看下别人的代码再说 
    #24节气 
    def solar_Term(solar_month, solar_day): 
        #每年数据不一样,此为2012年内的数据 
        stFtv = [ 
        "0106#小寒#", 
        "0120#大寒#", 
        "0204#立春#", 
        "0219#雨水#", 
        "0305#惊蛰#", 
        "0320#春分#", 
        "0404#清明#", 
        "0420#谷雨#", 
        "0505#立夏#", 
        "0521#小满#", 
        "0605#芒种#", 
        "0621#夏至#", 
        "0707#小暑#", 
        "0722#大暑#", 
        "0807#立秋#", 
        "0823#处暑#", 
        "0907#白露#", 
        "0922#秋分#", 
        "1008#寒露#", 
        "1023#霜降#", 
        "1107#立冬#", 
        "1122#小雪#", 
        "1206#大雪#", 
        "1221#冬至#", 
        ] 

网友的回应(0)