中华农历论坛知识讨论区历法知识 → 用瑞士星历表程序计算节气、朔和农历(已更新12)


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

主题:用瑞士星历表程序计算节气、朔和农历(已更新12)

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


加好友 发短信
等级:论坛游民 帖子:56 积分:672 威望:0 精华:1 注册:2010/8/12 21:56:00
用瑞士星历表程序计算节气、朔和农历(已更新12)  发帖心情 Post By:2020/5/24 18:44:00

c 源代码在这里:
http://astrolog32v3.altervista.org/Files/Other/vc6.rar

我直接上传源代码失败,提示 “错误:不支持 无组件 上传,服务器可能未安装该组件。”
不知道是何原因?!

更新:
http://astrolog32v3.altervista.org/Files/Other/vc6_1.rar

说明:
程序底层星体位置计算使用瑞士星历表程序,位置反算时间则使用了两种方法:
牛顿迭代法和弦截法,程序中还对两种算法的结果进行了比较。结果表明,无论是使用哪种方法(牛顿迭代法或弦截法),
对计算的结果没有影响。计算结果的准确度取决于星体位置计算的准确度(在这里就是瑞士星历表程序计算的结果)。
但程序中引用的牛顿迭代法代码有些问题,在有些情况下计算会有问题。所以还是建议使用许剑伟先生的弦截法代码。
在这个程序中,是可以使用 DE431 或 DE406 JPL 星历表进行计算的,你只需把 DE431.EPH 或 DE406.EPH 拷贝到
本程序 (swewin32.exe) 所在目录即可。

另 DE431.eph 适用范围是          -13000 - 16999 年
    DE406.eph 适用范围是            -2999 -  3000 年

最后说明一点,要使程序能够使用 DE431,必须在 vs2005 及以上版本中编译该代码。如果不想使用 DE431, 则在 vc6 下编译该代码也没问题。
原则上说,通过简单的设置,瑞士星历表程序可以使用任何版本的 JPL DE 星历表进行计算。
如果不使用任何外部的星历文件,瑞士星历表程序将使用其内置的 moshier 星历表,适用范围 -3000 - 3000 年

经纬度海拨高度和时区在线查询工具:
http://astrolog32v3.altervista.org/Files/Other/经纬度海拨高度和时区在线查询工具.zip
-----------------------------------------------------------------------------------------------------------------------------------------
前面的代码展示了历算中的由太阳位置或日地月相对位置计算节气和朔的方法。其中星体位置的计算采用的是瑞士星历表程序。
下面将展示用另一种计算星体位置的程序(aa-56)来计算农历和节气。
aa-56 程序可在以下页面下载:
http://www.moshier.net/#Astronomy
它是由斯蒂夫莫希尔所作,它的特点是,整合了 de404,精度高,时间跨度长 -3000 至 +3000 年,程序短小精悍,不需要额外的星历文件。
好了,不多说了。下面是实现的代码:
http://astrolog32v3.altervista.org/Files/Other/aa-56.rar
------------------------------------------------------------------------------------------------------------------------------------------
下面这个 c++ 源代码是网友 王晓华(吹泡泡的小猫) 在其大作《编码的乐趣》中所附的代码(有修改)。使用了 VSOP87+ELP/MPP02 来计算节气、朔和农历
http://astrolog32v3.altervista.org/Files/Other/calendar2.rar

下面这个 c++ 源代码是根据许剑伟先生很早一个版本的寿星万年历改写(这个版本的寿星万年历现在在网上已经找不到了),也是采用了 VSOP87+ELP/MPP02 来计算节气、朔和农历
http://astrolog32v3.altervista.org/Files/Other/寿星万年历简版.rar

下面这个 c++ 源代码是根据许剑伟先生的寿星万年历改写(由网友元谷改写为 C++代码,此处有修改),也是采用了 VSOP87+ELP/MPP02 来计算节气、朔和农历
http://astrolog32v3.altervista.org/Files/Other/寿星万年历.zip
------------------------------------------------------------------------------------------------------------------------------------------
下面这个源代码是上面 “http://astrolog32v3.altervista.org/Files/Other/寿星万年历.zip” 的修正版,修正了一处朔计算的 bug,修正了排月时遇闰月的错误,
并添加了使用 de406.eph 进行计算的结果及与寿星天文历计算结果的比较(此功能要求 de406.eph 文件必须与 pedump.exe 在同一目录中)
http://astrolog32v3.altervista.org/Files/Other/de406 vs sxtwl.rar
------------------------------------------------------------------------------------------------------------------------------------------
下面这个源代码展示了使用瑞士星历表源代码进行数术编程的应用,只实现了最简单的七政四余,八字,日出日落,月出月落,三元九运,真太阳时,平太阳时的计算
http://astrolog32v3.altervista.org/Files/Other/src.zip

下面这个源代码则是七政四余中的"郑氏星案恒星制"、"真太阳时排盘"、"遇卯安命"的实现(这个算法相对简单,不涉及恒星[28宿]视位置的计算、涉及恒星[28宿]视位置的计算的“今宿制”,将在下一次实现......未完待续,敬请期待:-))
http://astrolog32v3.altervista.org/Files/Other/Astrolog32v134Src.zip
------------------------------------------------------------------------------------------------------------------------------------------

下面这个程序和源代码实现了七政四余的四种排盘方式:郑氏星案恒星制、今制、古制、古制加岁差校正。未完待续,敬请期待:-)
http://astrolog32v3.altervista.org/Files/Other/Astrolog32v134Src2.zip
------------------------------------------------------------------------------------------------------------------------------------------
下面这个程序和源代码实现了日出日落的计算。关于日出日落,它涉及到昼生与夜生,命宫,天星吉时,阿拉伯点等内容的计算,其重要性无须多说。日出日落有两种不同的定义,它们是:
1    天文日出, 被定义为太阳圆盘的顶部出现在地平线上的时间。天文日落被定义为太阳圆盘的顶部消失在地平线以下的时刻。
2    印度占星和印度历法对日出和日落有不同的定义。它们是:当太阳圆盘的中心正好在地平线上时,他们认为是太阳升起或落下的时候。此外,印度占星的方法忽略大气折射。
目前网上能查到的日出日落大部分是第一种,“天文日出”,有名的七政四余软件 moira 计算的日出日落也是天文日出。还有寿星万年历也是采用的“天文日出”。
但是, 占星软件 Astrolog32 系列计算的日出日落确是“印度日出”,二者差异大约有四分钟左右。
所你,如果你看到不同的软件计算的日出日落时间不同时,有可能是采用了不同定义的日出日落。

http://astrolog32v3.altervista.org/Files/Other/vc6 - riseset.zip
------------------------------------------------------------------------------------------------------------------------------------------
下面这个程序和源代码实现了星体返照的计算。星体返照是指星体的流年位置(经度)正好与出生时的位置(经度)相同的时刻。未完待续,敬请期待:-)

http://astrolog32v3.altervista.org/Files/Other/vc6 - return.zip

------------------------------------------------------------------------------------------------------------------------------------------
下面这个程序和源代码实现了西方占星中的主限推运的计算。注意:时间输入出生日期时间、经度纬度输入格式:116.24表示116度24分,39.54表示39度54分。东经为正西经为负,北纬为正南纬为负。在接下来我们将讨论和展示中国术数的各种计算方法。未完待续,敬请期待:-)

http://astrolog32v3.altervista.org/Files/Other/mini.zip



[此贴子已经被作者于2020/10/14 15:16:09编辑过]


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


加好友 发短信
等级:版主 帖子:2068 积分:4293 威望:5 精华:4 注册:2008/11/13 21:03:00
  发帖心情 Post By:2020/6/1 10:46:00

感谢分享,先下载,等运行后再说。

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


加好友 发短信
等级:新手上路 帖子:1 积分:211 威望:0 精华:0 注册:2020/11/17 10:56:00
  发帖心情 Post By:2020/11/17 13:57:00

感謝分享,大神也

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


加好友 发短信
等级:论坛游民 帖子:63 积分:1204 威望:0 精华:0 注册:2013/3/28 14:53:00
  发帖心情 Post By:2020/11/26 13:23:00

这么丰富,不错的资源!

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

返回版面帖子列表

用瑞士星历表程序计算节气、朔和农历(已更新12)








签名