Office中国论坛/Access中国论坛
标题:
[讨论]关于农历算法
[打印本页]
作者:
盗到稻
时间:
2006-9-13 20:11
标题:
[讨论]关于农历算法
http://www.office-cn.net/forum.php?mod=viewthread&tid=38066
在上面的贴子中发现一个农历的函数,但农历是如何计算出来的,有谁知道?
作者:
fan0217
时间:
2006-9-13 20:24
'日期数据定义方法如下
'前12个字节代表1-12月为大月或是小月,1为大月30天,0为小月29天,
'第13位为闰月的情况,1为大月30天,0为小月29天,第14位为闰月的月
'份,如果不是闰月为0,否则给出月份,10、11、12分别用A、B、C来表
'示,即使用16进制。最后4位为当年家农历新年-即农历1月1日所在公历
'的日期,如0131代表1月31日。
'GetYLDate函数使用方式如下tYear为要输入的年,tMonth为月,tDay为
'日期,YLyear是返回值,返加农历的年份,如甲子年,YLShuXing返回
'的是属象,如鼠。IsGetGl是设置是不是通过农历取公历值,如果是,
'前三个返回相应的公历日期,而且返回值是一个公历日期。
'1900 to 1909
daList(1900) = "010010110110180131"
daList(1901) = "010010101110000219"
daList(1902) = "101001010111000208"
daList(1903) = "010100100110150129"
daList(1904) = "110100100110000216"
daList(1905) = "110110010101000204"
daList(1906) = "011010101010140125"
daList(1907) = "010101101010000213"
daList(1908) = "100110101101000202"
daList(1909) = "010010101110120122"
daList(1910) = "010010101110000210"
daList(1911) = "101001001101160130"
......
作者:
盗到稻
时间:
2006-9-13 21:46
看来农历没有算法,要先定义,比如要阳历5000的农历,一定要从2006年2007年2008年……一直手动算到5000年然后像daList(5000)="101……"才行。
网上找到有一个有趣的阳历算法:一般来说能被4整除的是闺年,但如果是世纪年(注意是一百年一次的“世纪年”)能被4整除不能被100整除的又不是闰年,如2000年,能被4再被100整除是闰年,如果是2100年,或2200年或2300年就不能了就不算闰年。程序上可以选判断能否整除100
[此贴子已经被作者于2006-9-13 13:49:56编辑过]
作者:
fan0217
时间:
2006-9-13 23:11
阳历闰年的算法本身就是那样的,不是一种有趣的算法,但在程序设计中不必考虑这个,只需要用DATE来调用就可以了。
作者:
盗到稻
时间:
2007-3-21 18:36
润年是没有算法的,要靠天文学预测出来的,是不是这样?,那阴历岂不是没有真正的万年历了?
作者:
fan0217
时间:
2007-3-22 02:12
一个比较有趣的办法就是看2月有没有29日来确定是否闰年,或者看2月是否有29天。
作者:
sblisb
时间:
2008-11-3 12:20
daList(1900) = "010010110110180131"
这行代表什么能说说吗
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3