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

2022-01-11,,,,

这篇文章主要介绍了JavaScript实现公历农历功能,涉及javascript日期与时间相关操作及运算操作技巧,需要的朋友可以参考下

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

完整代码(该源码使用在线工具http://tools.html.cn/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:这里再为大家推荐几款日历相关在线工具供大家参考:

网页万年历日历:
http://tools.html.cn/bianmin/webwannianli

在线阴历/阳历转换工具:
http://tools.html.cn/bianmin/yinli2yangli

在线万年历日历:
http://tools.html.cn/bianmin/wannianli

在线万年历黄历flash版:
http://tools.html.cn/bianmin/flashwnl

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript时间与日期操作技巧总结》《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》

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

以上就是JavaScript实现公历转农历功能示例的详细内容,更多请关注本站其它相关文章!

《JavaScript实现公历转农历功能示例.doc》

下载本文的Word格式文档,以方便收藏与打印。