python生成日历实例解析
本文实例展示了Python生成日历的实现方法。该实例可实现一个月的日历生成5x7的列表,列表里的没个日期为datetime类型,采用python自带的calendar模块实现。
程序运行结果如下:
pythontest.py201409 2014-08-312014-09-012014-09-022014-09-032014-09-042014-09-052014-09-06 2014-09-072014-09-082014-09-092014-09-102014-09-112014-09-122014-09-13 2014-09-142014-09-152014-09-162014-09-172014-09-182014-09-192014-09-20 2014-09-212014-09-222014-09-232014-09-242014-09-252014-09-262014-09-27 2014-09-282014-09-292014-09-302014-10-012014-10-022014-10-032014-10-04
python代码如下:
#coding:utf-8 #Lastmodified:2014-08-2111:08:08 importcalendar importdatetime importsys defgetcal(y,m): #从周日开始 cal=calendar.Calendar(6) ifnotisinstance(y,int):y=int(y) ifnotisinstance(m,int):m=int(m) ifm==1:#1月份 py=y-1;pm=12; ny=y;nm=2 elifm==12:#12月份 py=y;pm=11 ny=y+1;nm=1 else: py=y;pm=m-1 ny=y;nm=m+1 pcal=cal.monthdayscalendar(py,pm)#上一月 ncal=cal.monthdayscalendar(ny,nm)#下一月 ccal=cal.monthdayscalendar(y,m)#当前 w1=ccal.pop(0)#取第一周 w2=ccal.pop()#取最后一周 wp=pcal.pop()#上个月的最后一周 wn=ncal.pop(0)#下个月的第一周 #r1=[datetime.date(y,m,w1[i])orwp[i]foriinrange(7)] r1=[w1[i]anddatetime.date(y,m,w1[i])ordatetime.date(py,pm,wp[i])foriinrange(7)] r2=[w2[i]anddatetime.date(y,m,w2[i])ordatetime.date(ny,nm,wn[i])foriinrange(7)] #转datetime result=[] result.append(r1)#第一周 forcinccal:#其他周 result.append([datetime.date(y,m,i)foriinc]) result.append(r2)#最后一周 returnresult if__name__=='__main__': forwingetcal(sys.argv[1],sys.argv[2]): fordinw: printd, print
希望本文所述实例对大家的Python程序设计有所帮助。