以文本方式查看主题
- 中华农历论坛 (http://bbs.nongli.net/index.asp)
-- 历法知识 (http://bbs.nongli.net/list.asp?boardid=2)
---- [求助]我的要求很简单,这个农历转公历,公历转农历的VBA代码是正确的吗? (http://bbs.nongli.net/dispbbs.asp?boardid=2&id=68874)
|
-- 作者:nut2004
-- 发布时间:2015/5/22 18:09:00
-- [求助]我的要求很简单,这个农历转公历,公历转农历的VBA代码是正确的吗?
我的要求很简单 只要把指定公历日期转换成农历,但看了坛子的代码太累赘,功能太多,整得太复杂。
如下 公历农历互转
此主题相关图片如下:农历公历互转.png
实现1900年-2150年内的查询即可
|
-- 作者:nut2004
-- 发布时间:2015/5/22 18:17:00
-- 这是我找到的代码
我已经在坛子里研究了两天,但还看不出来一个所以然,下面的代码请前辈帮帮我看看——重点是这样算法对吗?
下面的\'农历常量:ylData,这个是什么意思,代表什么,这些数据是正确的吗?
链接:http://www.excelpx.com/home/show.aspx?id=34965
坛子里根本没法直接贴代码,贴上后格式全乱了,请前辈直接看链接的代码吧
|
-- 作者:nut2004
-- 发布时间:2015/5/22 18:41:00
--
代码地址:http://www.excelpx.com/home/show.aspx?id=34965
[此贴子已经被作者于2015-5-23 9:09:28编辑过]
|
-- 作者:hiteyun
-- 发布时间:2015/5/23 9:30:00
--
以下是引用nut2004在2015-5-22 18:17:00的发言:
我已经在坛子里研究了两天,但还看不出来一个所以然,下面的代码请前辈帮帮我看看——重点是这样算法对吗?
下面的\'农历常量:ylData,这个是什么意思,代表什么,这些数据是正确的吗?
链接:http://www.excelpx.com/home/show.aspx?id=34965
坛子里根本没法直接贴代码,贴上后格式全乱了,请前辈直接看链接的代码吧
这是一个查表法的日期转换程序,程序里将特定年份(1899-2100年)的农历每年各月大小、闰月等信息编成压缩数据存储在数组常量中。如第1个十六进制数为“AB500D2”,AB5即十二位二进制数101010110101表示1899年农历各月大小,00表示这一年没有闰月,D2换成十进制数为210表示当年正月初一的公历日期为2月10号。
|
-- 作者:hiteyun
-- 发布时间:2015/5/23 9:40:00
--
第2个数“4BD0883”是1900年的信息,其中“08”表示当年闰八月小,“83”换成十进制数是131表示正月初一的公历日期为1月31号。
|
-- 作者:nut2004
-- 发布时间:2015/5/25 13:22:00
--
谢谢,我全部转成2进制看看
|
-- 作者:春光
-- 发布时间:2015/6/4 21:47:00
--
如果节气精确到分钟的话,查表法不好处理节气。
|
-- 作者:宇谦
-- 发布时间:2015/9/6 16:43:00
--
如果节气不要求显示交节时刻,查表法倒是一种很简单的处理。
|
-- 作者:浪-淘-沙
-- 发布时间:2015/9/7 17:05:00
--
其实查表法,即使提供了“节气时刻”,也只是增加了一些数据量而已。编程代码的难度不会有特别的增加。
|
-- 作者:paradise300
-- 发布时间:2015/9/15 14:25:00
--
如果年份跨度不大,查表法精确到秒不是问题,只不过带小数的数据不好压缩,数据的体积会很大。目前封的C++库是200多Kb,改天有空了,封个农历转换的Excel插件再放到论坛来共享
|