Open ZD9503 opened 8 months ago
如图所示,
代码demo如下 ` import datetime import cnlunar import pandas as pd import os
start_date = datetime.datetime(1901, 11, 6, 0, 0) end_date = datetime.datetime(1903, 12, 10, 0, 0) delta = datetime.timedelta(days=1)
calendar = [] while start_date <= end_date: # a = cnlunar.Lunar(start_date, godType='8char') # 常规算法,即在正月初一切换年干生肖 a = cnlunar.Lunar(start_date, godType='8char', year8Char='beginningOfSpring') # 八字立春切换算法。
dic = { '公历日期': a.date, '农历日期数字': '%s-%s-%s' % (a.lunarYear, a.lunarMonth, a.lunarDay), '农历日期': '%s%s' % (a.lunarMonthCn, a.lunarDayCn), '星期': a.weekDayCn, '年干支': a.year8Char, '月干支': a.month8Char, '日干支': a.day8Char, # '时干支': a.twohour8Char, '今日节气': a.todaySolarTerms, '下一节气': (a.nextSolarTerm, a.nextSolarTermDate, a.nextSolarTermYear), '今年节气表': a.thisYearSolarTermsDic, } calendar.append(dic) start_date += delta print(start_date)
df = pd.DataFrame(calendar) file_name = "万年历输出表.xlsx"
sheet_name = datetime.datetime.now().strftime("%H-%M-%S") if os.path.exists(file_name): # 如果文件已存在,读取原有数据 with pd.ExcelWriter(file_name, mode='a') as writer: df.to_excel(writer, sheet_name=sheet_name, index=False) print(f"已在 {file_name} 中添加新的sheet表:{sheet_name}") else: # 如果文件不存在,直接保存 df.to_excel(file_name, sheet_name=sheet_name, index=False) print(f"已在 {file_name} 中创建新的sheet表:{sheet_name}") `
我已经预料到这个问题了,如果采用常规算法a = cnlunar.Lunar(start_date, godType='8char') # 常规算法,应该是没问题,立春切年柱这个算法目前没有任何书籍支持,是之前一个网友让我加进来的,本质上和《钦定协纪辨方书》的逻辑是相违背的,我看一下算法问题在哪修一下吧。
如图所示,
代码demo如下 ` import datetime import cnlunar import pandas as pd import os
start_date = datetime.datetime(1901, 11, 6, 0, 0) end_date = datetime.datetime(1903, 12, 10, 0, 0) delta = datetime.timedelta(days=1)
calendar = [] while start_date <= end_date:
a = cnlunar.Lunar(start_date, godType='8char') # 常规算法,即在正月初一切换年干生肖
df = pd.DataFrame(calendar) file_name = "万年历输出表.xlsx"
sheet_name = datetime.datetime.now().strftime("%H-%M-%S") if os.path.exists(file_name):
如果文件已存在,读取原有数据
else:
如果文件不存在,直接保存
`