我想写个小脚本,内容是把一年中是周末且周末是在新月那几天(农历 27-3 日),但是现在找不到公历转农历的包,之前的工作如下:
#生成一个一年的日历
df = pd.DataFrame(pd.date_range(start='2017-01-01',end='2017-12-31'),columns=['公历'])
df = df.set_index(keys='公历')
#找出所有周末
df['星期几'] = df.index.weekday + 1
Sat = df['星期几'] == 6
Sun = df['星期几'] == 7
#找出国庆节,别的节太短或者和周末都挨着
National_Day = df['2017-10-01':'2017-10-07']
new_df = pd.concat([df[Sat | Sun],National_Day])
df2 = df.ix[new_df.sort_index().index.drop_duplicates()]
下一步就该找出这个日历的农历了,有没有人教教我怎么做?
pypi 上有个 lunarsolarcovter 是 py2 用的,我用不了
1
billlee 2017-01-06 20:22:45 +08:00 1
LunarSolarConverter 就 200 行代码,你自己改一下不就完了
|
2
imn1 2017-01-06 21:10:33 +08:00 1
|
5
lifulinghan 2018-08-09 10:09:32 +08:00
有啊,你可以试一下 sxtwl,pip install sxtwl
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() #实例化日历库 #阴历转阳历 day = lunar.getDayByLunar(2030, 3, 27 , False) print u"公历:", day.y, u"年", day.m, u"月", day.d, u"日" if day.Lleap: print u"阴历:润", ymc[day.Lmc], u"月", rmc[day.Ldi], u"日" else: print u"阴历:", ymc[day.Lmc], u"月", rmc[day.Ldi], u"日" #同理,阳历转阴历 day = lunar.getDayBySolar(2018, 10, 20) print u"公历:", day.y, u"年", day.m, u"月", day.d, u"日" if day.Lleap: print u"阴历:润", ymc[day.Lmc], u"月", rmc[day.Ldi], u"日" else: print u"阴历:", ymc[day.Lmc], u"月", rmc[day.Ldi], u"日" |