# -*- coding: cp936 -*- # 制作一个日历(只显示阳历日期) ''' 实现方法:不使用python提供的calendar,根据给出的日期计算:1。先根据输入年份得到这一年的第一天是星期几((year + (year - 1)/4 - (year - 1)/100 + (year -1)/400)% 7)2。再依据输入的日期(只需要年月就可以了)得到这个日期得到在当前年份的第几天3。根据1和2得到当前月份的第一天是星期几。4。创建日历,其实就是在5x7的表格中预先放置5*7个Label,分别表示1-31的情况(应该包含所有的情况)。5。将1-31从得到的位置开始打印出来,以7为一行。6。更新日历,当对日历头进行操作(改变日期时)就会更新日历显示的内容。7。整个组件的布局是7x7的表格方式。第一行显示日历头,包括年月日的显示与选择;第二行为显示的日期,3-7为显示的月份信息。 ''' class Calendar: pass AppCal = Calendar() import time def calcFirstDayOfMonth(year,month,day): ''' 计算某一日的是星期几 ''' months = (0, 31 , 59 , 90 , 120 , 151 , 181 , 212 , 243 , 273 , 304 , 334 ) if 0 <= month <= 12 : sum = months[month - 1 ] else : print ' data error ' # 对年月做了判断,日只是加了上下限,没有根据月判断输入的是否合法 if year < 0 or month < 0 or month > 11 or day < 0 or day > 31 :