摘自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)