永发信息网

如何根据地理经纬度计算日出日落天亮天黑?或者类似函数?

答案:2  悬赏:70  手机版
解决时间 2021-08-23 09:58
  • 提问者网友:玫瑰园
  • 2021-08-22 13:42
如何根据地理经纬度计算日出日落天亮天黑?或者类似函数?越详细越好。
最佳答案
  • 五星知识达人网友:一叶十三刺
  • 2021-08-22 14:56

有函数的,但是要根据当地的经纬度以及当日日期,还有海拔情况,其实和天气也有关系。


这里有一个函数,但是很长,可以复制给你。


Function TaiYHJ(t) '太阳黄经,t为儒略世纪数
    t = t + (32 * (t + 1.8) * (t + 1.8) - 20) / 86400 / 36525 '儒略世纪年数,力学时
    j = 48950621.66 + 6283319653.318 * t + 53 * t * t - 994 + 334166 * Cos(4.669257 + 628.307585 * t) + 3489 * Cos(4.6261 + 1256.61517 * t) + 2060.6 * Cos(2.67823 + 628.307585 * t) * t
    TaiYHJ = j / 10000000
    End Function


Function ShJ(jd, L, fa, TZ) 'jd儒略日平午,L地理经度,fa地理纬度,TZ时区,返回太阳升起时间
    jd = jd - TZ
    t = jd / 36525: j = TaiYHJ(t): sinJ = Sin(j): cosJ = Cos(j) '太阳黄经以及它的正余弦值
    gst = 2 * Pi * (0.779057273264 + 1.00273781191135 * jd) + (0.014506 + 4612.15739966 * t + 1.39667721 * t * t) / rad '其中2*PI*(0.7790572732640 + 1.00273781191135448*jd)恒星时(子午圈位置)
    E = (84381.406 - 46.836769 * t) / rad '黄赤交角
    a = Atn2(sinJ * Cos(E), cosJ) '太阳赤经
    D = ASin(Sin(E) * sinJ) '/太阳赤纬
    cosH0 = (Sin(-50 * 60 / rad) - Sin(fa) * Sin(D)) / (Cos(fa) * Cos(D)) '日出的时角计算,地平线下50分
    cosH1 = (Sin(-6 * 3600 / rad) - Sin(fa) * Sin(D)) / (Cos(fa) * Cos(D)) '天亮的时角计算,地平线下6度,若为航海请改为地平线下12度
    If (cosH0 >= 1 Or cosH0 <= -1) Then '严格应当区分极昼极夜,本程序不算
    ShJ = -0.5 '极昼
    Exit Function
    End If
    H0 = -ACos(cosH0)    '升点时角(日出)若去掉负号 就是降点时角,也可以利用中天和升点计算
    H1 = -ACos(cosH1)
    H = gst - L - a '太阳时角
    ShJ = jd - Jiaodu(H - H0) / Pi / 2 + TZ '日出时间,函数返回值
    ZhongT = jd - Jiaodu(H) / Pi / 2 + TZ '中天时间,函数隐含返回
    TianLian = jd - Jiaodu(H - H1) / Pi / 2 + TZ '天亮时间,函数隐含返回
End Function
 Function Huansuan(Y, M, D, H, F, s)
    n = 0
   If (M <= 2) Then
   M = M + 12: Y = Y - 1
   End If
   If (Y * 372 + M * 31 + D >= 588829) Then
    n = Int(Y / 100): n = 2 - n + Int(n / 4)
   End If
   n = n + Int(365.25 * (Y + 4716) + 0.01)
   n = n + Int(30.6 * (M + 1)) + D '
   n = n + ((s / 60 + F) / 60 + H) / 24 - 1524.5
   Huansuan = n
   End Function


具体是用方法见如下链接:


http://user.qzone.qq.com/3625428/blog/1280416179

全部回答
  • 1楼网友:独钓一江月
  • 2021-08-22 15:09
没函数只有公式...
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯