中华农历论坛知识讨论区历法知识 → 寿星万年历5.08(测试版)


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

主题:寿星万年历5.08(测试版)

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


加好友 发短信
等级:论坛游侠 帖子:159 积分:583 威望:0 精华:1 注册:2008/9/3 16:55:00
  发帖心情 Post By:2008/12/20 13:34:00

2009年1月26日  环食  我国云南,广西可见偏食 
2009年7月22日  全食  藏东南察隅,云南西北部,四川,重庆,湖北西南部,南部,湖南北部,安徽,江西,浙江,上海,江苏南部上午,其余各地可见偏食 
2010年1月15日  环食  云南西部,西北部,四川大部,陕西,湖北,河南,山东带食而没,除黑龙江外,各地可见偏食 
2010年7月11日  全食 

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


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

食分的计算似乎很复杂.我找不到明确的食分定义.所以也想不出一个通用的计算食分的公式.

按我的理解:日食的食分就是月亮能盖住多少比例的太阳.

用这个公式似乎可以计算:

食分=(Rm+Rs-Lsm)/(2*Rs)

其中:Rm为月亮视半径,Rs为太阳视半径,Lsm为日月中心角距.

这个公式可能有缺陷.只适合计算日食食既(第一次日月内切)之前及生光(第二次内切)之后的食分.

对于日全食阶段(从食既到生光),食分计算公式变为:Rm/(Rs+Lsm)

最大食分当然是食甚时刻(Lsm最小值对应的时刻)对应的食分.这也是日食预报上公布的食分数值.

观测点计算得到的最大食分大于等于1时,就能看到日全食.


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


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

以下是引用ldlcau在2008-12-20 13:34:00的发言:
2009年1月26日  环食  我国云南,广西可见偏食 
2009年7月22日  全食  藏东南察隅,云南西北部,四川,重庆,湖北西南部,南部,湖南北部,安徽,江西,浙江,上海,江苏南部上午,其余各地可见偏食 
2010年1月15日  环食  云南西部,西北部,四川大部,陕西,湖北,河南,山东带食而没,除黑龙江外,各地可见偏食 
2010年7月11日  全食 

如果能找到日食中心附近的大城市的一些详细数据就更好.比如最大食分,初亏,食甚,复圆时刻(全食时还有食既,生光时刻)等数据.

不过,还是要谢谢你提供的资料.


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


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

寿星万年历的食甚、初亏、复圆等已经精确解出。但还无法得知全国整体日食情况,所以这两天画一个地图,准备把中心食带表达出来,这样可以帮助查阅全国日食情况。


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


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

怪了,这个帖子发不出去.只好另发一个回贴了.


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


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

许兄,你的3.21版万年历有关"八字"的数据似乎是错误的.

比如今天2008122021:45,万年历(3.21)上显示:庚辰年己丑月己亥日乙亥时.

万年历(3.18)显示:戊子年甲子月甲午日乙亥时.

不知3.22版是否已经修正这个错误?


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


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

已发布3.23版

根据浪淘沙的指正,修正3.21版的一个八字失误


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


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

不错.3.23版的日食信息已经同步显示日月的经纬度、方位、高度、视半径等信息,这样就可以判断我想要的食既、生光时刻了。加上初亏,食甚,复圆,正好是日全食的五项基本数据了。

至于食分(食甚时最大食分),可以手工计算。

提个小建议:

如果表二提供的太阳视半径、月亮视半径取2位小数,那么就可以很清楚地判断食既及生光时刻了。

判断1:日月中心视距+太阳的视半径=月亮的视半径时就是食既(或生光)时刻。

或者判断2:距相切数值=2*太阳视半径时就是食既(或生光)时刻。

 

 

[此贴子已经被作者于2008-12-21 14:24:18编辑过]

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


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

以下是引用xjw01在2008-12-20 21:01:00的发言:

寿星万年历的食甚、初亏、复圆等已经精确解出。但还无法得知全国整体日食情况,所以这两天画一个地图,准备把中心食带表达出来,这样可以帮助查阅全国日食情况。

计算食带似乎比较复杂。但愿许兄早日完成。

对于某一指定经度,可以算出某一纬度,使得日月中心视距达到最小值(也就是食分最大值),这个经纬度坐标就是日食中心经过的一个点了。

我把杭州的经度-120.16666666代入,慢慢找合适的纬度,使得日月中心视距最小。2009年7月22日那次日全食,中心点在北纬30.715度(食甚时日月中心视距接近0)。大概在杭州北面50多公里的地方。

同理,对于同一经度,可以求出最北与最南二个纬度,使得这二个点恰好在食甚时刻发生日全食(食分为1,或者月亮视半径=太阳视半径+日月中心视距)。南北两条线之间的地带都是日全食带。


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


加好友 发短信
等级:论坛游民 帖子:58 积分:3673 威望:0 精华:0 注册:2008/8/6 9:17:00
  发帖心情 Post By:2008/12/21 14:51:00

寿星万年历2008版更新说明

寿星万年历2008版更新说明,是根据论坛的本贴(“寿星万年历2.0(测试版)”(http://bbs.nongli.com/dispbbs.asp?boardID=2&ID=14995&page=1))
和“日月计算器(包含'公农回'三合一万年历)”(http://bbs.nongli.com/dispbbs.asp?boardID=2&ID=12282&page=2)
两贴中作者许老师所发布的内容整理而成的。
1、发布日期优先按网站下载的压缩包日期确定,再按作者在网站的发贴日期确定。
2、从更新说明可以看出作者在寿星万年历上所花了大量的时间和精力,特别是最近一个月,几乎每天更新一个版本,甚至是每天两个版本的更新。

   在此,对许老师的辛勤劳动表示感谢。

========================================================
2008-12-20 发布V3.23版
1、根据浪淘沙的指正,修正3.21版的一个八字失误

========================================================
2008-12-19 发布V3.22版

1、改进坐标变换相差算法——使用了严格的周日视差修正算法。
2、改进sun_moon()类,在赤道坐标进行视差修正。
3、增加了日食甚的参考计算。注意:只是算出了日月中心角距离的最小值发生的时刻,有无日食还须人工核对一下半径和。
   食甚时刻使用了迭代算法,精度较高。
4、增加了海拨高度及任意地标输入。

========================================================
2008-12-17 发布V3.21版

1、修好了版面结构
2、微调yueLiHTML()成员函数
3、加入图表功能,目前可能精确观测日食(可精确到秒)

========================================================

2008-12-16 发布V3.20版

1、改正EXE版“地标选择”不能写入cookies的问题
2、优化即时日月星历计算,把它做成独立的类件,以便下一步计算日月食。

========================================================
2008-12-15 发布V1.9版

1、优化“命理八字”的计算,使之成为一个与农历类无关的独立函数
2、更改页面上地标的显示方式

========================================================
2008-12-15 发布V3.18版

1、改正左上方两个时间有时候会相差1秒的问题(dexian报告)。
   出错原因:上面一个时间使用javascript自带的本地时间函数输出,下一个使用自定义的JD物件输出,前都设有四舍五入到秒,后者有,所以有时差一秒。修改后统一作了四舍五入。这样有可能与电脑托盘上时间相差1秒,但可保证寿星万年历中使用的时间的统一。
2、根据叶风杨的建议改“三一”为“卅一”
3、答ymy111问题:您所述的纪日法在鼠标经过日历上方时弹出的浮动框里显示。命理八字好像全部严格使用天象确定八字,如以立春时刻定年,节气时刻定月,真太阳23点定日,真太阳23点、1点、3点……定时辰,我觉得,如果使用平太阳时间系统定日,那么八定计算显得不统一、不协调,造成年月使用“真时间”,日时使用“平时间”。纪日纪时的改正当时根据netghost的建议改正的。说实在,我也不清楚这种方法是否正确。

========================================================
2008-12-14 发布V3.17版

1、修正“命理八字”中纪日分界点的错误。改为23点
2、更改“命理八字”的历算内核,全部采用天象确定命理八字,输入为UTC,内核转为真太阳时间系统计算。
3、更改“命理八定”的接口参数,有利用在此基础上扩充功能

这个版本修正得很累,因为重新设计了一个高速中精度的时差算法。
我检查了一下,EXE版确实存在地标选择参数无法写入cookies的问题,EXE程序是用html_runexe.exe编译的,我也不知道问题出在哪里。望有高手指教。
日食的图表显示问题正在设计中,目前使用VML图形技术解决。本来想用日梭万年历的方案,但我还是放弃了。我把经纬度表达为直角平面,并再用一个图进行日月运动的局部放大(放大数十倍)。不然太阳太小,看不出日食效果。日食代码的设计还要一段时间才能完成。
VML的接口已经设计好,但觉得复杂。我有可能回至使用GIF的方案。

========================================================
2008-12-13 发布V3.16版

1、根据浪淘沙的指正,修改了下方的坐标计算错误。
2、修改了地标数准没有正确写入cookies的错误(造成下次打开时无法保留原来的地标数据)

========================================================
2008-12-12 发布V3.15版
1、改正了晚上23点至24的纪时错误。

========================================================
2008-12-12 发布V3.14版

1、根据叶风杨的建议(在他的html版),把鼠标经过的显示框位置作了调整。防止显示框超出日历区。
2、修正时区信息的“中南”、“大洋”的错误,改正为“中南美洲”“大洋洲”
3、再次改写内核结构(不改算法)

内核基本组成为:
(1)XL 物件:星历物件
(2)obb物件:农历通用的常数表、天文算法计算气朔函数等、公历农历的节日判断函数等
(3)SSQ物件:农历的气朔计算表计算器(含古历算法及天文算法)、年历排定(定出月序、闰月、月大小、月建)等
(4)Lunar类:这是一个类,不是物件实例。功能:产生月历详细表。

调用方法示例1:
var lun = new Lunar(); //生成月历物件
lun.yueLiCalc(); //生成月历
调用后,lun物件将产生很多农历信息

调用方法示例2:
var lun = new Lunar();
lun.yueLiHTML(); //生成月历HTML
yueLiHTML成员函数与页面生成有关。如果对版面不满意,改这个函数的内容。

说明:
1、程序结构基本上比较合理、标准,有空的时候写一个编程技术档案,这样就可在《寿星万年历》的基础上进行二次开发了。
2、注意程序中的public申明与private申明,javascript不易做到公有或私有申明,所以的物件或类,其成员都是公有的。如果我在注释中申明为私有,用户不要调用(它是成员函数内部自己调用的,与用户关系不大)。很多函数是私有函数,抛开么有成员函数再去理解程序结构,就会发现程序没几行。

========================================================
2008-12-11 发布V3.13版

1、根据“叶风杨”兄的农历节日数据,增加了一些农历节日
 
写“万年历”的工作量很大,有点超出我当时的想象。刚开始写的时候,本以为只需一两个星期就可以解决问题,想不到搞了几个月还未能发布完整版。

========================================================
2008-12-11 发布V3.12版

相对V3.10版,改正了:
1、619年到1960年的V3.10农历气朔函数调用的失误。这个调用错误造成这1千多年的农历无法计算。
2、改写了压缩合成单文件sxwnl.htm用的“JavaScript代码压缩器”,V3.10使用ESC软件压缩合成,但我没有找到这个软件的调试功能,以至于压缩出错时我无法找出原因,所以花了一天时间自己编写了一个压缩器,文件名为jsZip.js,它带有调试功能,通过调试,可确保压缩成功。
3、内核作了微调

说明,jsZip.js内部使用了WScript对象以及文件对象,所以计算机的安全级别不能过高。请使用Cscript.exe执行jsZip.js,不能使用Wscript.exe

========================================================
2008-12-09 发布V3.10版
相对V3.09,本版作了一些内核结构改动。变化如下:
1、修改了一部分程序结构,增强程序的可读性、更意管理。程序代码很长,原来结构有很多不合理。这样有助于下一步扩展程序功能而不造成性能的下降。
2、根据netghost提供的数据,增加了严格的世界各国时区
3、增加了js压缩、合并的工具包
4、订正JD物件的一个bug,并增加了JD物件的一个函数
5、根据ldlcau的数据,修改了-1600年的年号
6、微调一点版面结构

========================================================
2008-12-07 发布V3.09版

作者没有发布更新说明。

========================================================
2008-12-06 发布V3.08版

作者没有发布更新说明。

========================================================
2008-12-05 发布V3.06版

作者没有发布更新说明。

========================================================
2008-12-04 发布V3.05版

1、改正了年份跳转的错误。被充了一些说明档案(备忘技术档案)

========================================================
2008-12-02 发布V3.03版

更新内容:
1、根据ldlcau在第29楼的建议,更改了公元前纪年的显示和输入问题
2、根据ldlcau在第29楼的建议,更新了年号纪年数据库
3、增加了说明文档第六章(“离散序列的线性拟合”),这是提取古历参数的利器。

========================================================
2008-12-02 发表了V3.02

1、改进了古历算参数。
   原历算参数取小数点以下8位,容差h也偏小,理论上存在1280至1645年气日误算的可能(当然这种可能性十分小)。
   改进后取小数点以后9位,同时增加容差h一倍。

========================================================
2008-12-01 发布V3.0

新增内容:
1、前历推算到-721年,与实历相符。
2、修改部分说明书的容。

========================================================
2008-11-27 发布V2.05版

更改如下:
1、根据ldlcau先生在18楼提供的数据,更新了年号数据库

========================================================
2008-11-26 发布V2.04版

更改如下:
1、根据ldlcau先生在15楼提供的数据,更新了年号数据库。
2、提供年号数据管理工具。
3、更新了帮助文档。

========================================================
2008-11-26 发布V2.03版

1、根据浪-淘-沙的指正,已更改了“纪月”的错误。

   错误原因:在两个冬至之前,必含有十三个月的“纪月”信息,更改历算内核时误以为只有12个月。
   程序更改如下:

   原来的:
    //纪月处理,1998年12月7(大雪)开始连续进行节气计数,0为甲子
    mk = int2( (ob.d0 - this.ZQ[0])/30.43685 );  if(mk<11 && ob.d0>=this.ZQ[2*mk+1]) mk++;  //相对大雪的月数计算

   改为:
    //纪月处理,1998年12月7(大雪)开始连续进行节气计数,0为甲子
    mk = int2( (ob.d0 - this.ZQ[0])/30.43685 );  if(mk<12 && ob.d0>=this.ZQ[2*mk+1]) mk++;  //相对大雪的月数计算

========================================================
2008-11-25 发布V2.02版

1、根据Violentpig 的指正,更改了“某月第几个星期几”的节日计算错误。
   当时我把“某月第几个星期几”理解为“某月第几星期的星期几”而造成错误。

========================================================
2008-11-24 发布V2.01版

更改了公元9年到23年的月建

========================================================
2008-11-21 发布V2.0版

1、已将古代真实日历推算到公元前104年(与实历相符),公元前104年以前及1960年以后的农历使用现代算法
2、提供精准的农历年历表
3、提供现代定气、定朔与古代气朔的比较
4、改写了历算内核

说明:为了准确得到古历原貌,做了不少工作,虽然程序的最后程序长度几乎不变,但软件开发其间编写了很多历算数据提取、整理、较验的中间代码,以及许多算法分析,真的觉得累了,所以我不打算再往前推算公元前104前以前的古代原真日历了,望大家愿谅。


========================================================
2008-11-7  发布V1.35版

作者没有发布更新说明。

========================================================
2008-11-4  发布V1.33版

1、修正了一个显示错误。

========================================================
2008-10-17  发布V1.32版

作者没有发布更新说明。

========================================================
2008-09-07  发布V1.31版

作者没有发布更新说明。

========================================================
2008-09-05  发布V1.3版

作者没有发布更新说明。

========================================================
2008-09-01  发布V1.2版

作者没有发布更新说明。

========================================================
2008-08-29  发布V1.1版

正式发布寿星万年历脱机版本及源代码。
作者没有发布更新说明。

========================================================
2008-07-27  发布日月计算器(包含'公农回'三合一万年历,即寿星万年历)在线版。

http://www.fjptsz.com/xxjs/xjw/rj/115.htm
暑假花费了2个星期的时间,整理了我在《天文算法》一贴中的程序,并加上一个日历计算组件,可供日历爱好者使用。
程序共70多千字节,其中注释部分占了1/3。

算法:VSOP87及ELP/MPP02半解析法。

数据:日月运动数据拟合了DE405,章动使用IAU1982,岁差及恒星时使用IAU2000。
由于基本使用了最现代的数据,所以计算的精度与《2008中国天文年历》平均吻合到0.1角秒数量级(太阳),1角秒(月亮)。
当然,日历计算根本无需这么高的精度。因为日历计算只需保证最近几十年内没有错误就可以了。因为,不论是遥远的过去或者是将来,由于地球自转速度的不均匀,我们对日历时间的把握无法很准确。除非使用原子钟定日历,但是,我们使用地球自转及日月运转定日历,这注定我们无法把基于天文算法的农历算得绝对精确。


感谢 jyarmy 帮我购买了《2008年中国天文年历》
感谢 春光 提供了《瑞士星历表》的下载地址
通过《2008中国天文年历》和《瑞士星历表》,使用我们能够进一步检验计算的精度。顺便说一下,《2008中国天文年历》的精度是非常高的,它不是手工计算的,是用计算机算出来的。
程序中的算法涉及的天文学及日历方面的知识比较多,可以写成一本书,有兴趣者可以合著,靠我一人看来是写不成的。


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

返回版面帖子列表

寿星万年历5.08(测试版)








签名