设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2196|回复: 6
打印 上一主题 下一主题

[其它] [讨论]关于农历算法

[复制链接]
跳转到指定楼层
1#
发表于 2006-9-13 20:11:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
http://www.office-cn.net/forum.php?mod=viewthread&tid=38066

在上面的贴子中发现一个农历的函数,但农历是如何计算出来的,有谁知道?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2006-9-13 20:24:00 | 只看该作者
'日期数据定义方法如下
'前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"
......
3#
 楼主| 发表于 2006-9-13 21:46:00 | 只看该作者
看来农历没有算法,要先定义,比如要阳历5000的农历,一定要从2006年2007年2008年……一直手动算到5000年然后像daList(5000)="101……"才行。

网上找到有一个有趣的阳历算法:一般来说能被4整除的是闺年,但如果是世纪年(注意是一百年一次的“世纪年”)能被4整除不能被100整除的又不是闰年,如2000年,能被4再被100整除是闰年,如果是2100年,或2200年或2300年就不能了就不算闰年。程序上可以选判断能否整除100

[此贴子已经被作者于2006-9-13 13:49:56编辑过]

4#
发表于 2006-9-13 23:11:00 | 只看该作者
阳历闰年的算法本身就是那样的,不是一种有趣的算法,但在程序设计中不必考虑这个,只需要用DATE来调用就可以了。
5#
 楼主| 发表于 2007-3-21 18:36:00 | 只看该作者
润年是没有算法的,要靠天文学预测出来的,是不是这样?,那阴历岂不是没有真正的万年历了?
6#
发表于 2007-3-22 02:12:00 | 只看该作者
一个比较有趣的办法就是看2月有没有29日来确定是否闰年,或者看2月是否有29天。
7#
发表于 2008-11-3 12:20:37 | 只看该作者
daList(1900) = "010010110110180131"
这行代表什么能说说吗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-9 07:20 , Processed in 0.117420 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表