中国传统历法转换算法设计与实现
2024-12-28潘昶瑞敖以诺张澜馨韩浩博姚洋
作品构思
农历,是我国传统历法,是几千年来劳动人民智慧的结晶,是中华传统文化瑰宝,蕴含着丰富的科学知识。一直以来,农历指导劳动人民日出而作,日落而息,周而复始,养育了一代代中华儿女。但是,随着现代化进程不断加快,农历历法的民间传承几乎断档。设计农历与公历日期转换算法,旨在帮助我们了解我国传统历法,理解农历在我国文化中的重要意义,坚定文化自信,肩负起传承中华传统文化的重任。
项目制作过程
项目制作过程包括如下步骤。
1.认识与分享:农历历法
(1)整理任务单。任务单内容包括:农历历史溯源;农历的周期。
(2)项目组搜集信息并汇报研究结果。我们结合当前农历历法规则说明农历历法计算规则,农历闰年是19年中有7个闰年,闰月则是需要根据闰年在这19年中对应的位置,在相应的月份后插入一个月,也称为闰几月,更精确的算法需要结合现代科技手段进行测算。
2.学习Python基础语法
(1)以判断闰年为例设计算法,得出判断方式为“四年一闰,百年不闰,四百年再闰”。
(2)算法是解决一类特定问题而采取的确定的有限的步骤。我们自学教材,应用ProcessOn软件绘制流程图,利用流程图描述算法。
(3)学习算法的三种结构(顺序结构、选择结构、循环结构),依靠流程图理解算法的执行过程。
(4)学习Python语言基本语法,学习数据类型、常量与变量、输入与输出、运算符等常见语法结构。
(5)利用Pycharm编译工具演示编写选择结构代码,使用if…elif…else格式编写代码。
3.构建农历数据转换器
(1)项目设计:确立项目目标是构建农历数据转换器,将公历日期转换为农历日期,加深对农历历法的了解;设立项目基础功能,计算未来三年的春节日期;输入公历日期即刻转化为公历日期。
(2)撰写项目文本,设计算法的流程和功能。
(3)因农历历法中存在19年7闰的复杂情况,实现起来较为困难,采用了农历算法库lunarcalendar来进行公历与农历间的转换。但是该库并非是完全精确的算法,而是使用了一些规则和逼近方法来计算。
(4)pip命令和导入第三方库的方法。命令行输入命令为:pip install lunarcalendar。
(5)教师提供文心一言问答接口,我们通过问答辅助代码实现。
(6)调试完代码后,完善项目文本。
项目反思与创新点
农历历法的测算存在着一定程度的复杂性、不确定性,因此,很难找到准确精确的农历历法,在展现形式上确实存在问题,需要我们后续继续结合天文学方面的知识继续探究。
项目功能演示
项目功能展示如下。
(1)此算法可输出日历上每个公历日期对应的农历日期。
(2)输出未来三年农历春节具体公历日期。