JavaScript实现公历转农历功能示例

前端之家收集整理的这篇文章主要介绍了JavaScript实现公历转农历功能示例前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了JavaScript实现公历转农历功能分享给大家供大家参考,具体如下:

完整代码(该源码使用在线工具http://tools.jb51.cc/code/js进行了格式化处理,以便于读者阅读):

公历转农历 要保存一年的信息,其实只要两个信息就可以了:1.农历每个月的大小?
2.今年是否有闰月.
3.闰几月以及闰月的大小.

用一个整数来保存这些信息就足够了.
具体的方法是:用一位来表示一个月的大?
笤录俏?,小月记为0,这样就用掉12 位(无闰月)或13 位(有闰月),再用高4位来表示闰月的月份,没有闰月记为0.
比如说,2 0 0 0 年的信息数据是0 x C 9 6 ,化成二进制就是110010010110B,表示的含义是指1、2、5、8、10、11月大,其余月小.
2001 年的农历信息数据是0x41A95,其中4表示今年闰4月,月份大小信息就是0x1A95(因为闰月,所以有13 位),具体的就是1、2、4、5、8、10、12月大,其余月份?
?x1A95=1101010010101B),4月的后面那一个0表示的是闰4月?
幼诺哪歉?表示5月大.
这样就可以用一个数组来保存这些信息.
在我的JavaScript脚本程序中是用CalendarData[]这个数组来保存这些信息的.
下面就是公历转换成农历的具体算法:1.计算出所求时间到起始年正月初一的天数.
2.从起始年份开始,减去每一月的天数,一直到剩余天数没有下一个月多为止.
此时,CalendarData[]的下标到了多少,就是减去了多少年,用起始年份加上这个下标就可以得到农历年份,然后看减去了几个月.
如果本年不闰月或者闰月还在后面,就可以直接得到农历月份,如果在闰月月份数后面一个月,则这个月就是闰月,如果在闰月的后面,则要减去1 才能得到月份数.
剩余的天数就是农历日,农历时用(公历时+1)/2 就可以简单地得到了.

运行效果图如下:

PS:这里再为大家推荐几款日历相关在线工具供大家参考:

网页万年历日历:

在线阴历/阳历转换工具:

在线万年历日历:

在线万年历黄历flash版:

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《》《》、《》、《》及《用法总结》

希望本文所述对大家JavaScript程序设计有所帮助。

猜你在找的JavaScript相关文章