|
楼主 |
发表于 2018-11-18 11:06
|
显示全部楼层
''主程序
Sub 按钮1_Click()
Dim arr, k0, brr()
k0 = [b1].End(4).Row - 1
arr = [b2].Resize(k0, 2)
ReDim brr(1 To k0, 1 To 4)
Dim z() As Double, i
Dim y1 As Long, m1 As Integer, d1 As Integer
For i = 1 To k0
''''''''''''''儒略日转换
ymd = Split(arr(i, 1), "-")
y1 = ymd(0): m1 = ymd(1): d1 = ymd(2)
brr(i, 1) = GL2JD(y1, m1, d1) - 8 / 24 + deltaT(y1) / 86400 + DateDiff("s", "12:00", arr(i, 2)) / 86400
testT = (brr(i, 1) - 2451545#) / 365250 '儒略千年数
''''''''''''''计算太阳坐标
ReDim z(0 To 2)
Call earthCoor(testT, z, -1) '地球黄经
z(0) = z(0) + pai: z(1) = -z(1) '太阳黄经黄纬 //太阳地心黄经 = 地球日心黄经 + 180°
brr(i, 2) = z(0)
gx = gxc_sun(testT, z(0)) '太阳光行差
nu = nutation(testT * 10) '章动计算
nu2 = Split(nu, ",")
z(0) = z(0) + (nu2(0) + gx) / (rad * 3600) '补章动与光行差
brr(i, 3) = rad2str(rad2mrad(z(0)), 0)
''''''''''''''计算月球坐标
testT = testT * 10 '儒略世纪数
L = moonLon(testT, -1) '正算
''结论:月球的黄经光行差约为0.7角秒(最大误差16%)
numoon = nutation_moon(testT) '章动计算
numoon2 = Split(numoon, ",")
L2 = rad2mrad(L + numoon2(0) / (rad * 3600) - 0.7 / (rad * 3600)) '补章动与光行差
LS = rad2str(L2 * 1, 0)
brr(i, 4) = LS
Next
[d2].Resize(k0, 4) = brr
End Sub
|
评分
-
1
查看全部评分
-
|