Calendar模块有很广泛的方法用来处理年历和月历,例如打印某月的月历:
返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。 每日宽度间隔为w字符。每行长度为21* W+18+2* C。l是每星期行数。
calendar.isleap(year)
是闰年返回 True,否则为 false。
返回在Y1,Y2两年之间的闰年总数。
返回两个整数。第一个是该月的星期几,第二个是该月有几天。星期几是从0(星期一)到 6(星期日)。
需安装sxtwl包,命令如下pip install sxtwl
农历(Lunar calendar)<->阳历(solar calendar)转换
代码如下(基于python3):
import sxtwl
#日历中文索引
ymc = [u"十一", u"十二", u"正", u"二", u"三", u"四", u"五", u"六", u"七", u"八", u"九", u"十" ]
rmc = [u"初一", u"初二", u"初三", u"初四", u"初五", u"初六", u"初七", u"初八", u"初九", u"初十", \
u"十一", u"十二", u"十三", u"十四", u"十五", u"十六", u"十七", u"十八", u"十九", \
u"二十", u"廿一", u"廿二", u"廿三", u"廿四", u"廿五", u"廿六", u"廿七", u"廿八", u"廿九", u"三十", u"卅一"]
# 日历库实例化
lunar = sxtwl.Lunar()
# 1.阴历转阳历
solar_day = lunar.getDayByLunar(2019,7,27)
print("公历(阳历):{0}年{1}月{2}日".format(solar_day.y, solar_day.m, solar_day.d))
# 2.阳历转阴历
from datetime import date
today = str(date.today()) # 如 2019-08-08
today_list = today.split('-') # ['2019', '08', '08']
lunar_day = lunar.getDayBySolar((int)(today_list[0]),(int)(today_list[1]),(int)(today_list[2])) # 输入年月日
# 判断是否为润年
if(lunar_day.Lleap):
print("阴历(农历):{0}月{1}".format(ymc[lunar_day.Lmc], rmc[lunar_day.Ldi]))
else:
print("阴历(农历):{0}月{1}".format(ymc[lunar_day.Lmc], rmc[lunar_day.Ldi]))
结果为
'''
公历(阳历):2019年8月27日
阴历(农历):七月初八
'''
打印2017一整年的日历:
#!/usr/bin/python#coding=utf-8
import time
import calendar
k=0
def nowtime():
t1=time.time()
localt1=time.localtime(t1)
localtime=time.asctime(localt1)
print localtime
while k<=1:
k+=1
time.sleep(2)
nowtime()
for i in xrange(1,13):
print '2017年%s月的日历\n'%i,calendar.month(2017,i)
time.sleep(1)
希望能帮助到你!