以文本方式查看主题

-  中华农历论坛  (http://bbs.nongli.net/index.asp)
--  历法知识  (http://bbs.nongli.net/list.asp?boardid=2)
----  [求助]网上找到的现成算法,求天亮时间的计算代码  (http://bbs.nongli.net/dispbbs.asp?boardid=2&id=60694)

--  作者:esnake
--  发布时间:2013/3/18 10:48:00
--  [求助]网上找到的现成算法,求天亮时间的计算代码
这段代码是从网上找到的,里面只有日出的时间计算,要是想计算天亮的时间,该怎样写函数呢?

好象是许老师的代码,求教许老师,能否赐教?先谢过!


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:code.txt



--  作者:浪-淘-沙
--  发布时间:2013/3/18 11:17:00
--  
通常是假定天亮时刻为太阳的中心线在地平线之下6度。

--  作者:esnake
--  发布时间:2013/3/18 11:39:00
--  
function sheng(jd,L,fa,TZ){ //jd儒略日平午,L地理经度,fa地理纬度,TZ时区,返回太阳升起时间 jd-=TZ; var T=jd/36525; var J = sunLat(T), sinJ=sin(J), cosJ=cos(J); //太阳黄经以及它的正余弦值 var gst = 2*Math.PI*(0.7790572732640 + 1.00273781191135448*jd) //恒星时(子午圈位置)           + (0.014506 + 4612.15739966*T + 1.39667721*T*T)/rad; var E = (84381.4060 -46.836769*T)/rad; //黄赤交角 var A=Math.atan2( sinJ*cos(E), cosJ); //太阳赤经 var D=Math.asin ( sin(E)*sinJ );      //太阳赤纬 var cosH0 = (sin(-50*60/rad) - sin(fa)*sin(D) ) / ( cos(fa)*cos(D) ); //日出的时角计算 if(cosH0>=1||cosH0<=-1)  return 0; var H0 = -Math.acos( cosH0 ); //升点时角(日出) var H = gst-L-A; //太阳时角 return jd - rad2rrad(H-H0)/6.28+TZ; } 这是计算日出的代码
--  作者:jyarmy
--  发布时间:2013/3/21 9:51:00
--  
有时间仔细看看。
--  作者:esnake
--  发布时间:2013/3/22 17:16:00
--  
知道了,把里面的角度-50*60/rad 替换成 -Pi() / 30即可
--  作者:a123zas
--  发布时间:2013/4/3 22:16:00
--  
支持一下