中华农历论坛知识讨论区历法知识 → [求助]帮我看看这个算法,怎么总是相差十天


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

主题:[求助]帮我看看这个算法,怎么总是相差十天

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


加好友 发短信
等级:业余侠客 帖子:372 积分:1447 威望:0 精华:0 注册:2008/12/20 18:10:00
[求助]帮我看看这个算法,怎么总是相差十天  发帖心情 Post By:2008/12/25 1:37:00

装载 D:\DOWNLOADS\汉语编程\新词汇集\由儒略日推算历日.CHP
。 ★
2008 12 24.0 由儒略日推算历日 ★...
看数摞 [3] 1 3 2009 ★...
2008 12 22.0 由儒略日推算历日 ★......
看数摞 [6] 1 3 2009 1 3 2009 ★......
2008 12 22.0 1 由儒略日推算历日 看数摞
数摞顶有不同类型的数进行运算!
2008 12 1.0 由儒略日推算历日 看数摞 [3] 1 3 2009 ★...
2007 12 24.0 由儒略日推算历日 看数摞 [6] 1 3 2009 1 3 2008 ★......
2007 12 1.0 由儒略日推算历日 看数摞 [9] 1 3 2009 1 3 2008 1 3 2008 ★......

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


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

依原始资料如下:

由儒略日推算历日

将JD加上0.5,令 Z 为其整数部分,F 为尾数(小数)部分。

若 Z < 2299161,取A = Z

若 Z 大于等于2299 161,计算 α=INT((Z-1867216.25)/36524.25) ,A=Z+1+α-INT(α/4)

然后计算

B = A+1524

C = INT((B-122.1)/365.25)

D = INT(365.25C)

E = INT((B-D)/30.6001)

该月日期(带小数部分)则为:d = B - D - INT(30.6001E) + F

月份m为:
IF E < 14 THEN m = E – 1
IF E=14 or E=15 THEN m = E – 13

年份为y:
IF m>2 THEN y = C – 4716 IF m =1 or m=2 THEN y = C – 4715

这个公式里求E时用的数30.6001不能代之以30.6,哪怕计算机没有先前所说的问题。否则,你得到的结果会是2月0日而不是1月31日,或者4月0日而不是3月31日。


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


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

装载 D:\DOWNLOADS\汉语编程\新词汇集\由儒略日推算历日.CHP
。 ★
2008 12 24.0 由儒略日推算历日 ★...
看数摞 [3] 1 3 2009 ★...
2008 12 22.0 由儒略日推算历日 ★......
看数摞 [6] 1 3 2009 1 3 2009 ★......
2008 12 22.0 1 由儒略日推算历日 看数摞
数摞顶有不同类型的数进行运算!
2008 12 1.0 由儒略日推算历日 看数摞 [3] 1 3 2009 ★...
2007 12 24.0 由儒略日推算历日 看数摞 [6] 1 3 2009 1 3 2008 ★......
2007 12 1.0 由儒略日推算历日 看数摞 [9] 1 3 2009 1 3 2008 1 3 2008 ★.......
.
2007 10 1.0 由儒略日推算历日 看数摞 [12] 1 3 2009 1 3 2008 1 3 2008 1 3 2008
 ★........
2007 6 1.0 由儒略日推算历日 ★........
看数摞 [15] 1 3 2009 1 3 2008 1 3 2008 1 3 2008 1 3 2007 ★........

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


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

不知原始数据有问题,还是我的程序没编好,呵呵


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


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

如果正好差十天,那么你忘了1582年10月4日的第二天是1582年10月15日.中间的10月5日到10月14日已经被人为抹去了.

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


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

呵呵,不好意思,是我自己少了一个符号所致,现在已经测试,能正常使用,并发表于本版:儒略日推算历日.CHP

支持(0中立(0反对(0单帖管理 | 引用 | 回复 回到顶部

返回版面帖子列表

[求助]帮我看看这个算法,怎么总是相差十天








签名