中华农历论坛知识讨论区历法知识 → [求助] 根据农历日期转换成儒略日值的最简方法


  共有37903人关注过本帖树形打印

主题:[求助] 根据农历日期转换成儒略日值的最简方法

帅哥哟,离线,有人找我吗?
秦汉昌
  1楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
[求助] 根据农历日期转换成儒略日值的最简方法  发帖心情 Post By:2011/4/30 13:15:00

 

根据农历日期转换成儒略日值的最简方法,要求:

1、精确到日就可以了:

2、以黄帝纪年进行年计数或者以1984年开始进行年计数都可以;

3、一定要能通过农历的年计数来确定当年的准确的第一个朔日(、冬至、正月初一、春分都可以),当然,如果得到了农历日期对应的儒略日值,那么一定能得到第一个朔日的准确儒略日值,由于西历年与农历年的不同,而且农历年的计算比西历年较复杂,所以,直接用西历年来替农历年来求农历某年垢首朔日,如果将两个科冬至之间所有月的朔日先求出,则有点浪费,呵呵


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  2楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2011/4/30 19:46:00

我起初设计的是查表法:

 

用压缩数据来存诸农历信息

 

0x0000   的形式

 

其中 ox0  至 0x8  -  1  保存闰月值

  

  0x8 到  0x8000  保存  月大小标志  次序为:  1 2 3 4 5 6 7 8 9 10 11 12 闰  月的大小二进制位

 

1、用  <被压缩数> 1  15  左移位  或    的形式输入数据   (移15位表示输入一月大的二进制标志,小月无须  进行 或  操作)

 

 

2、用   <被压缩数>  0x10000  <建寅为正的月序数>    右移位  与   的形式获得该 的月大小信息

 

3、用   <被压缩数>  0xf  与      的形式  获得闰月值

 

4、用  348  加上  月大小调整数  为  某年天数

 

 


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
浪-淘-沙
  3楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:2068 积分:4263 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2011/4/30 22:16:00

农历朔日没有简单的算法,所以你的要求很难实现的。

 

至于查表法,估计代码很长,计算速度不一定很快。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
秦汉昌
  4楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
  发帖心情 Post By:2011/5/3 22:52:00

查表法,从代码上讲,应该不长,大概10K左右,但是,它只能得到一年首月之朔日,而且,不方便根据实历修正,更重要的,不好精算其它星历数据。

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
浪-淘-沙
  5楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:2068 积分:4263 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2011/5/4 9:29:00

以下是引用秦汉昌在2011-5-3 22:52:00的发言:
查表法,从代码上讲,应该不长,大概10K左右,但是,它只能得到一年首月之朔日,而且,不方便根据实历修正,更重要的,不好精算其它星历数据。

你要搞查表法,可以根据戴大金及其他朋友的“金盘子”、“银盘子”的压缩算法原理进行数据压缩。那么代码可以大大降低的。

他们的算法,因为要卖钱(出书),所以目前不会公开的。

 

但你自己可以钻研出一套新的压缩算法来。可以把朔、望、节气的时间精确到分钟(而不是精确到日)。而代码可能还会很短的。

 

当然了,查表法毕竟不能作为真正的星历,你要查朔日三天后的月亮位置,就很难有精确的数据了。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
xjw01
  6楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:蝙蝠侠 帖子:866 积分:3804 威望:3 精华:20 注册:2008/3/20 22:14:00
  发帖心情 Post By:2011/5/5 21:41:00

用天文算法排年历:

 

1、先计算一年(至少一年)的气朔时刻

2、按照农历规则排算,得到各月的大小,闰月,每月的月首的需略日等信息

 

实际上,气朔计算出来后,每初一对应的儒略日就已知了。

 

显然,楼主的问题,实际上就是农历计算的问题。

 

还有一种方法就是查表法。


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
ddjhnshdx
  7楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:254 积分:1719 威望:0 精华:0 注册:2007/5/5 23:30:00
  发帖心情 Post By:2012/6/18 10:38:00

如果辅助干支这项日脚来推儒略日,就很容易。没有干支、星期等项目的话,那就要用天文算法,或压缩记忆法或直接查表法。

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
txwdx
  8楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:职业侠客 帖子:496 积分:2143 威望:0 精华:0 注册:2010/2/16 19:15:00
  发帖心情 Post By:2012/6/19 18:59:00

      从1912年正月初一甲子(2419451)起算
1、根据年份,估计月数。年数*12.36827,截尾取整,然后加上月份(闰月记前一个月号)。
             今年六月初六,(2012-1912)*12.36827=1236       1236+06=1242
             今年五月初五,(2012-1912)*12.36827=1236       1236+05=1241
             今年闰月十二,(2012-1912)*12.36827=1236       1236+04=1240
             今年四月十八,(2012-1912)*12.36827=1236       1236+04=1240
             今年三月初三,(2012-1912)*12.36827=1236       1236+03=1239
             今年二月初二,(2012-1912)*12.36827=1236       1236+02=1238
             今年正月十五,(2012-1912)*12.36827=1236       1236+01=1237
2、根据月数,估计天数。(月数-1)*29.53058,截尾取整,然后加上日期。
             六月初六         1241*29.53058=36647        36647+06=36653
             五月初五         1240*29.53058=36617        36617+05=36622
             闰月十二         1239*29.53058=36588        36588+12=36600
             四月初八         1239*29.53058=36588        36588+08=36596
             三月初三         1238*29.53058=36558        36558+03=36561
             二月初二         1237*29.53058=36529        36529+02=36531
             正月十五         1236*29.53058=36499        36499+15=36514
3、用干支校正。日数/60截尾取整,然后再乘以60,然后再加上当前干支。所得结果减去第2步的结果小于-1时,将所得结果加60。
            36653-(36653%60)=36600,今年六月初六为丙戌(23),36600+23=36623,36623-36653=-30,36623+60=36683
            36622-(36622%60)=36600,今年五月初五为乙卯(52),36600+52=36652,36652-36622=30,ok
            36600-(36600%60)=36600,今年闰月十二为癸巳(30),36600+30=36630,36630-36600=30,ok
            36596-(36596%60)=36540,今年四月初八为己未(56),36540+56=36596,36596-36596=0,ok
            36561-(36561%60)=36540,今年三月初三为甲申(21),36540+21=36561,36561-36561=0,ok
            36531-(36531%60)=36480,今年二月初二为甲寅(51),36480+51=36531,36531-36530=0,ok
            36514-(36514%60)=36480,今年正月十五为丁酉(34),36480+34=36514,36514-36514=0
,ok
           今年天祝节为1912年春节起的第36683日,2419450+36683=2456133。无误
           今年端午节为1912年春节起的第36652日,2419450+36652=2456102。无误
           今年儿童节为1912年春节起的第36630日,2419450+36623=2456080。无误
           今年浴佛节为1912年春节起的第36596日,2419450+36606=2456046。无误
           今年上巳节为1912年春节起的第36561日,2419450+36563=2456011。无误

           今年春龙节为1912年春节起的第36531日,2419450+36531=2455981。无误
           今年元宵节为1912年春节起的第36514日,2419450+36514=2455964。无误





[此贴子已经被作者于2012-6-21 9:58:53编辑过]


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
txwdx
  9楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:职业侠客 帖子:496 积分:2143 威望:0 精华:0 注册:2010/2/16 19:15:00
  发帖心情 Post By:2012/6/20 14:59:00









































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































































年份干支算得月数算得日数余数校准天数偏差实际天数计算偏差儒略日
191211515115151501502419465
191222322313132132-12419482
191233236226206202419512
191248374963697197-12419547
191255351233123012302419573
19126633615333153015302419603
191277471844184018402419634
191281541822141221022102419671
191299492455244-124412419694
19121015401028040280028002419730
191211149113099309030902419759
1912128321233232332033202419782
19841151789126297172629702629702445747
19842234892263133326314126314-12445764
19843348932634442634402634402445794
19844839894263783826379126379-12445829
198455689526405526406126406-12445856
19846636896264353526436126436-12445886
19847768972646662646602646602445916
198481544898265034326504126504-12445954
19849978992652772652702652702445977
198410154290026562422656202656202446012
1984L10107900265573726527-3026587-302446037
198411127901265785826547-3126607-292446057
19841284902266153526584-3126644-292446094
201211534123736514343651403651402455964
20122251123836531513653103653102455981
20123321123936561213656103656102456011
20124856124036596563659603659602456046
2012L412301240366000366303036630-302456080
2012555212413662222366523036652-302456102
201266231242366535336623-3036683-302456133
2012775312433668323367133036713-302456163
2012815311244367211367513036751-302456201
2012995412453674525367742936774-292456224
20121015301246367800368103036810-302456260
20121195312473680424368332936833-292456283
20121223371248368477368773036877-302456327
201411553126237253533725303725302456703
201422912633726993726903726902456719
20143340126437300403730003730002456750
20144814126537334143733403733402456784
20145541126637361413736103736102456811
20146611126737391113739103739102456841
20147742126837422423742203742202456872
201481519126937459193745903745902456909
20149943127037483433748303748302456933
2014L99131270374834337453-3037513-302456963
201410154812713751818375483037548-302456998
20141120231272375535337523-3037583-302457033
201412235512733758525376153037615-302457065
2033115331497441923244193144193-12463643
20332249149844209494420904420902463659
203333201499442391944240144240-12463690
20334854150044274544427404427402463724
20335520150144300204430004430002463750
20336651150244331514433104433102463781
20337721150344361214436104436102463811
203381559150444399594439904439902463849
20339922150544422224442204442202463872
2033101558150644458584445804445802463908
2033113043150744503434450304450302463953
2033L11115415074448424445143044514-302463964
20331223351508445255445553044555-302464005
 


[此贴子已经被作者于2012-6-20 18:39:49编辑过]


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
帅哥哟,离线,有人找我吗?
浪-淘-沙
  10楼 个性首页 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:2068 积分:4263 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2012/6/20 16:39:00

 

txwdx朋友

请用1984-85年度(甲子年)闰十月、十一月的日期。

2033-34年度(癸丑年)闰十一月、十二月的日期。进行试错测试,看看你的算法会不会有例外的?


支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部
总数 35 1 2 3 4 下一页

返回版面帖子列表

[求助] 根据农历日期转换成儒略日值的最简方法








签名