java根据经纬度算出日出日落时间

根据经纬度,计算每天的日出日落时间

我现在想明白了这个跟时区没有关系。它只跟太阳照在哪个纬度线上和你想知道哪根纬度线的日出时间有关系,却跟经度却没有关系(跟时区也就没有关系了)。


季节变化时太阳照在地球上的纬度线也就变了,对于当天太阳所照的那个纬度线上的人来说,白天和晚上的时间刚好都是12个小时,因此就是早上6:00日出,下午6:00日落;这里面有个约定,那就是时间本身就是基于日出计算出来的,所以它是相对的,我们只是基于一个共同的标准来计算差异。所以,在还没有时钟古代滴漏这种计时工具时,我们就把大晴天时看见太阳的第一时刻当成是6:00。


当太阳不是照在我们所在的纬度线上时白天和黑夜的长度就不是刚12个小时,因此有了日出时间和日落时间的差异。那么我们回家拿个灯照一个球形体,并模拟球形赤道线与太阳的夹角在变化(季节变化)就能知道怎么计算了,当然还需要把这个计算的逻辑转换成为数学方法;这里面我们需要计算的就是(对于某个季度,比如假设太阳照在北纬23.5 度时)对于每一个纬度圈,太阳能照到的弧长是多少,照到和照不到的也就是对应着白天和黑夜的长度,它把24小时切分了。这样就计算出时间了。

这个数学公式就同时涉及了太阳所照的纬度以及你想知道的纬度,这里面的数学公式对于一个数学从来都只是及格线附近徘徊的我来说是个挑战;

当太阳照在纬度x时,那么它同时照到的纬度圈y的弧长占地球周长的百分比是多少(假设地球是一个均匀球体)。


下面图片大概是先计算出目标查询纬度圈 y 的半径 r2,计算出高 h 再得到被遮挡弧的线到中轴的距离 a ,用它来计算被遮挡弧的角度来得到弧长所点纬度圈 r2 对应的周长的百分比,这个值与50%的差异也就是目标纬度y与当前太阳直射纬度x 两个地区人们的白天时间差异所点百分比,用这个百分比来修正标准日出时间(6:00)得到一个估算的日出时间,日落时间也是相应地修正。


似乎是这么算的,如果大家看出啥错误的,就说说原因。


温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-27
已知:太阳在日出或日落-0.833°,计算地理位置,经度朗,纬度G1at,时区的区,日出和日落的最后一次反对派计算,先计算反对派= 180°位置=。
(1)计算从2000年的第一年北京时间1月1日,计算天数天数天数;

(2)从2000年的格林威治标准时间年1月1日计算,计算的世纪,对t的天数,则T =(daysUTo/360)/ 36525;

(3)计算出太阳的直径扁平黄色L = 280.46036000.770×吨;

(4)来计算太阳的平近点角G = 357.52835999.050×T

(5)来计算太阳的黄经λ= L1.915×sinG0.020xsin(2G);

(6)来计算地球的倾角ε= 23.4393-0.0130×吨;

(7)来计算太阳的偏差δ=反正弦(sinε×sinλ);

(8)来计算太阳时间GMT角GHA:GHA = UTO-180-1.915×唱-0.020×罪(2G)2.466×罪(2λ)-0.053×罪(4λ)

(9 )来计算修正值E:E =阿科斯{[双曲正弦罪(Glat)罪(δ)] /余弦(Glat)COS(δ)}

(10)来计算新的日出日落时间UT =反对派 - (GHALong±E);其中“”表示计算日出时间,“ - ”表示计算日落时间; (11)的绝对值和UT反对派比较差,如果大于0.1°即0.007小时,日出而作,日落而作为新的UT值,再从第一步的时间(2)启动迭代计算,并且如果菟UT小于0.007小时之间的差的绝对值的话,UT是格林威治日落时间的需求;
(12)上面的计算以度,也就是说,180°= 12个小时,因此需要转换的时间以小时为单位,加上时区数区,也就是计算日出和日落的时间在T = UT/15Zone上述计算方法适用于日出,比纬度60°和地区之间的60°南纬较小的日落时间,如果西半球的计算位置,经度龙是否定的。
第2个回答  2017-08-27
我能给你一个粗略的计算公式日出时间计算公式: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)-日出时间
第3个回答  2014-04-27
没见过真能计算。日出日落,还和海拔、季节等有关。追问

有关肯定有关,排除掉这些,只要经纬度

追答

排除的话,就是计算时区了。
请看 https://zhidao.baidu.com/question/400627431.html 不想转内容了

~

第4个回答  2017-08-26
1,某地日照时间=12×2×arccos(tanα×tanβ)/180,α为太阳直射点纬度,与所求地点在赤道同侧时取负值,不同侧时取正值;β为该地纬度,取正值。夏至日时太阳直射纬度23°26′N,α为-23°26′N,β为33°,日照时间≈14.18h,日出/日落时间等于12-(14.18/2)=早上/下午4.91h。秋分日时太阳直射赤道纬度为0°,日照时间为12h,日出/日落时间等于早上/下午6h。冬至日时太阳直射纬度23°26′,α取正,日照时间≈9.82h,日出/日落时间12-(9.82/2)=早上/下午7.09h以上计算都是不考虑空气折射的理想情况。某一纬度日照时间计算方法_百度文库/link?url=45u3J9YvlO3xXWw2-nP5IedXcz_BH2G7F1ayn7LPspVQLhIGlsF1sOuw9XrGisP1RivQcuPm3bpr_Q3pfs8aEaYXld3SipUSQXC_XMpnifK),再用向量分解求出平面光照强度随太阳高度角变化的函数②,最后得到一个平面光照强度随时间变化的函数③,最后再进行定积分。
相似回答