ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 4792|回复: 20

[原创] 日月轨道计算小程序

[复制链接]

TA的精华主题

TA的得分主题

发表于 2018-11-18 11:05 | 显示全部楼层 |阅读模式
输入 :B列、C列 输入北京时间,
输出 :F列、G列 分别输出日月的地心视 黄经角度 (0角度 为当年的 春分点) 。

当输入 日月合朔(农历初一)的 准确时刻 ,会发现 日月角度相同,也就是与地球在一条直线上。


aa1.jpg


日月轨道计算.rar (63.44 KB, 下载次数: 110)

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 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

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-11-18 13:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
可以算农历

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-18 13:13 | 显示全部楼层

理论上可以 ,可以用 时间X --太阳角度Y1 做曲线a,时间X --月球角度Y2 做曲线b 。

两条曲线的 交点就是 农历初一 所在当日。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-18 14:21 | 显示全部楼层
把角度 折算为 弧度 ,作图 如下 (一个小时 取一个点 ,总 360*24 个数据)

ee3.jpg

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-18 14:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
内存作图 ,画布 可以拉的 很长。

ff6.rar (416.94 KB, 下载次数: 39)

TA的精华主题

TA的得分主题

发表于 2018-11-18 15:53 | 显示全部楼层
zopey 发表于 2018-11-18 14:55
内存作图 ,画布 可以拉的 很长。

不画图不就是求曲线a曲线b的交点的集合吗?
要把两个曲线方程写出来才行

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-18 16:18 | 显示全部楼层
向東 发表于 2018-11-18 15:53
不画图不就是求曲线a曲线b的交点的集合吗?
要把两个曲线方程写出来才行

是的 ,公转轨道方程 结构很复杂,参数都 成百上千 ,并不是初高中教的 简单的 多项式方程 。
月球轨道  又比太阳轨道 难算,它 变化的 更快。

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-11-19 08:46 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
知识点 1


1、恒星年是以天球上固定的点(如遥远的恒星)为参照物的运动周期,
只在天文学上使用。
  一个恒星年等于365.25636个平太阳日,或365天6时9分9.504秒。 2、回归年是太阳中心在黄道上连续两次经过春分点的时间间隔,即太阳连续两次直射于北回归线(或南回归线)的时间间隔。
  因此,回归年又称“太阳年”、“季节年”。回归年稍短于恒星年约20分24秒,其周期约为365日5时48分46秒。
  全球各地的昼夜长短和正午太阳高度的季节变化、阳历和阴历的历年安排、二十四节气的划分,均以回归年为周期。
3、恒星年与回归年的时间差,天文学界命名为“岁差”。(春分点西移)




4、恒星月是指月球对于一颗恒星来说的自转周期恒星月是月亮绕地球运动的真正周期。
  一个恒星月就有27.322天,或是27天7小时43分11.51秒。
5、朔望月 代表月相变化的周期,也就是从朔到望或从望到朔的时间。
  观测结果,朔望月的长度有时长达29天19小时多,有时仅为29天6小时4分多, 它的平均长度为29天12小时44分3秒。
  朔望月是月亮圆缺变化的周期,与地球上涨潮落潮有关,与航海、捕鱼有密切的关系,同时在宗教上月相也占有重要位置。


6、简单验算:已知 恒星月=27.3天,恒星年=365.25天,求朔望月周期 ?
  解答: 列方程   1/朔望月= 1/27.3-1/365.25
             朔望月=29.5 


TA的精华主题

TA的得分主题

发表于 2018-11-23 10:58 | 显示全部楼层

请参考
将公历日期转换为农历日期.rar (6.77 KB, 下载次数: 39)
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-23 16:04 , Processed in 0.037135 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表