最精简的公历农历转换程序

时间:2014-09-06 03:37:52
【文件属性】:

文件名称:最精简的公历农历转换程序

文件大小:3KB

文件格式:TXT

更新时间:2014-09-06 03:37:52

公历农历转换

此程序非本人所写 程序的功能是输入2000年2月5日(正月初一)至2100年12月31日之间的公历日期,输出对应的农历日期(闰月以月份+128表示); 该程序由IAR编译成MSP430的目标代码,大约占用600个字节的程序空间,如改用汇编,去除多余的头尾,应该可以缩减到500字节以内; 程序特色在于用101个16位字表述了101年的农历大小月及闰月的数据。低12位表示对应12个月的月大或月小,最低位为正月,1表示月大; 高4位为0时表示当年及下一年无闰月;高4位为1~12时表示下一年度的相应月存在闰月;高4位为13或14时,分别表示当前年的闰月为月小或月大。 按照这个结构可以扩充到更多年份,但程序中对非闰年的公历1900,2200,2300,2500年份未作处理,仅对2100作为特例处理。 为简化程序,在转换函数内对输入日期的合法性未作判别,如输入1810-2-15、2008-6-31等,将导致不可预料的输出结果。 提醒:程序仅进行了抽样测试,未做逐月验证,对于相近农历月大小颠倒的情况不能排除,如作为产品使用,请再次确认转换表数据的正确性。


网友评论

  • 一般般吧,有些小问题
  • 不错,我调试还能通过,担是前面有一部份代码没看懂
  • 可以用,不过有一些小BUG,而且没有提供说明,第一次用的时候容易弄糊涂,后来反复试验才得到正确用法