做完一个月历后,小伙们直呼不过瘾,想要做出一本日历来。小编已经要赔付大家了,毕竟日历比月历难得多,但是反过来想,是不是可以做出一页的日历打印下来,贴在家里和工作的地方都很方便,而且也是一个省钱的好办法了。作为一个行动派,小编马上就为大家安排上这方面的内容。
要以不同于其中一个可用默认值的格式生成输出,请使用calendar计算日期并将值组织为周和月范围,然后迭代结果。Calendar模块的 weekheader(),monthcalendar()和 yeardays2calendar()方法对此特别有用。
调用yeardays2calendar()会生成一系列“月份行”列表。每个列表包括月份作为另一个周列表。这几周是由日期编号(1-31)和工作日编号(0-6)组成的元组列表。超出月份的天数为 0。
importcalendar importpprint cal=calendar.Calendar(calendar.SUNDAY) cal_data=cal.yeardays2calendar(2017,3) print('len(cal_data):',len(cal_data)) top_months=cal_data[0] print('len(top_months):',len(top_months)) first_month=top_months[0] print('len(first_month):',len(first_month)) print('first_month:') pprint.pprint(first_month,width=65) #输出 #len(cal_data):4 #len(top_months):3 #len(first_month):5 #first_month: #[[(1,6),(2,0),(3,1),(4,2),(5,3),(6,4),(7,5)], #[(8,6),(9,0),(10,1),(11,2),(12,3),(13,4),(14,5)], #[(15,6),(16,0),(17,1),(18,2),(19,3),(20,4),(21,5)], #[(22,6),(23,0),(24,1),(25,2),(26,3),(27,4),(28,5)], #[(29,6),(30,0),(31,1),(0,2),(0,3),(0,4),(0,5)]]
相当于使用formatyear()。
importcalendar cal=calendar.TextCalendar(calendar.SUNDAY) print(cal.formatyear(2017,2,1,1,3)) #输出 #2017 # #JanuaryFebruaryMarch #SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa #123456712341234 #891011121314567891011567891011 #151617181920211213141516171812131415161718 #222324252627281920212223242519202122232425 #293031262728262728293031 # #AprilMayJune #SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa #1123456123 #23456787891011121345678910 #91011121314151415161718192011121314151617 #161718192021222122232425262718192021222324 #2324252627282928293031252627282930 #30 # #JulyAugustSeptember #SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa #11234512 #234567867891011123456789 #91011121314151314151617181910111213141516 #161718192021222021222324252617181920212223 #23242526272829272829303124252627282930 #3031 # #OctoberNovemberDecember #SuMoTuWeThFrSaSuMoTuWeThFrSaSuMoTuWeThFrSa #1234567123412 #8910111213145678910113456789 #151617181920211213141516171810111213141516 #222324252627281920212223242517181920212223 #293031262728293024252627282930 #31
day_name,day_abbr,month_name,和 month_abbr模块主要用于生产定制格式化输出(即,包括在 HTML 输出链接)。它们会针对当前区域自动化配置。
这些代码看起来很长,其实只要复制运行就可以啦,小伙伴们不要不敢尝试~更多Python学习推荐:PyThon学习网教学中心。