我能给你一个粗略的计算公式
日出时间计算公式:
24*(180+时区*15-经度-ACOS(-TAN(-23.4*COS(360*(日期序列数+9)/365))*TAN(纬度))/360
我国时区为东8区,时区=8
经度、纬度采用角度制,东经、北纬为正,西经、南纬为负
日期序列数为当天在这一年中的序列,如2月11日就是42
因为计算机一般采用弧度制,上面公式可变化为:
24*(180+时区*15-经度-ACOS(-TAN(-23.4*COS(2*π*(日期序列数+9)/365)*π/180)*TAN(纬度*π/180))*180/π)/360
计算结果是一个小于24的数值,如6.69,表示6:41
日落时间计算公式:24*(1+(时区*15-经度)/180)-日出时间
我网上找到
利用寿星万年历
以地球中心为原点O,赤道所在平面为XY平面,东经120度指向西经60度为Y轴正方向.球心指向北极为Z轴正方向.有了Y轴与Z轴就可定X轴的方向(从东经30度指向西经150度)
球面方程:X^2 + Y^2 + Z^2 = 1 (设地球直径为1)
日出日落时刻圈方程:Y^2 + Z'^2 = 1 (Z'以Z轴作坐标变换,见下面)
Z'=Z*sin(β+90) (β为太阳光直射点纬度)
求纬度α度时日出时刻.先解出纬度为α度时的X,Y坐标.
X=sinα*sin(β+90)*cos(β+90)/(cosβ*cosβ)
Y=-SQRT(1-X^2-sinα*sinα) (SQRT为平方根)
有了XY坐标,求反正切,得出一个角度值(由于在XY平面内,0度在X轴正向,实际的东经120度在Y轴负方向上,即270度角.所以要换算一下,才能得出经度差)
实算一下:代入杭州的纬度为30.15度,夏至日时,太阳直射点纬度为23.4333度.
算出X=-0.21835,Y=-0.83578,反正切得出-104.64度.计算时假设杭州在Y轴负方向上(即270度或-90度).两者之间相差14.64度,换成时间就是58.56分钟.
(计算出的14.64度的含义是指,夏至日那天,当赤道上(北纬0度)东经120度的地方看到日出时,北纬30.15度,东经(120-14.64)度的地方也正好看到日出.)
(换句话说:当赤道上东经120度的地方看到日出时,北纬30.15度东经120度的地方日出已经过去58.56分钟了.由于赤道上是昼夜等分的(假设太阳是个点光源),即日出时刻一定在6:00.那么同一经度的北纬30.15度地方,日出时间是5:01:26左右.杭州东经120度10分.比120度还早了40秒钟.所以日出时间为5:00:46)
查寿星万年历,杭州在夏至日的日出时间为4:58:07,日落时间19:04:07.
没有,不可能的!比如说沈阳的经纬度几点日出日落?这是不断变化的,跟经纬度没有关系!
兄弟,不好意思,我不明白这是怎么计算的,现在是帮不了您了。