首先感谢帮我算题的小玉玉~
算了一周的日出日落,倍觉痛苦,写下来防止下次再算。
根据经纬度和UTC计算日出日落的思路、算法及scala代码如下~
日出和日落的计算思路:
一天的日出和日落可以根据正午时刻平分昼长得到。
正午时刻可以根据所在时区和经度得到。
根据经度可以知道所在时区。
昼长可以根据太阳赤角和所在纬度计算得到。
符号说明:
rc:日出
rl:日落
zw:正午
day:昼长
zone:时区
δ:太阳赤纬
lon:经度
lat:纬度
N:每年一月一日到当前的天数
b:弧度制
计算公式:
当lon大于7.5时加一,小于7.5时减一
δ=0.006918-0.399912*cos(b)+0.070257*sin(b)-0.006758*cos(2*b)+0.000907*sin(2*b)-0.002697*cos(3*b)+0.00148*sin(3*b)