ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[原创] VBA 万年农历新月及24节气查询( 计算范围 -9999 ~ 9999)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-11-11 23:16 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖已被收录到知识树中,索引项:其他编程应用
本帖最后由 jdwang1000 于 2011-11-23 12:03 编辑

VBA 万年农历新月及24节气查询( 计算范围 -9999 ~ 9999)

在2011-09-06發表了EXCEL 純函數24節氣的計算經過了2個多月後

終於完成了 VBA版的萬年農曆新月及24節氣查詢

本農曆及24節氣資訊主要參考來源為以下三處

天文與曆法 ( -7000 ~ 7000 ) http://bieyu.com/

寿星天文历(天文历书工具軟體下載) http://www.fjptsz.com/xxjs/xjw/sxwnl.rar

《天文算法》译著——许剑伟 (也是寿星天文历的開發者)
http://www.astronomy.com.cn/bbs/forum.php?mod=viewthread&tid=112225


本VBA 計算 200年的農曆及24節氣約需時 0.65秒 , 1000年約 2.96秒 , 5000 年約 14.1秒 , 20000 年約 55秒
( 硬體規格為 Intel Core™2 Quad CPU 2.4GHz 4G Ram Windows 7 作業系統 )


本 EXCEL工作簿操作說明如下 :

在 [ B1 ] 輸入所要西元年份 其範圍為 [ -9999 ]  ~  [ 9999]

在 [ B2 ] 輸入所要的資料年數

例如若需要西元 1000 ~ 3060 年的農曆新月及24節氣資訊

則在 [ B1 ] 輸入 1000  在 [ B2 ] 輸入 2060

如此即可獲得自西元 1000 年起 至西元 3060 年 共2060年的農曆新月及24節氣資訊

若在 [ B1 ] 輸入 -3214 ( 公元前 3215年 )  在 [ B2 ] 輸入 1052

如此即可獲得自 -3214 年起 ( 公元前 3215 年 )  至 -2214 年止 ( 公元前 2215 年 ) 共1000年的農曆新月及24節氣資訊

[ B1 ] 輸入 [  0 ] 代表公元前 1 年


[ B1 ] 輸入 [ -1 ] 代表公元前 2 年 依此類推

本VBA運算出的農曆及24節氣點與天文與曆法網站
http://bieyu.com/
幾乎完全一致   (最大誤差1秒 --> 那是浮點運算小數進位時所造成)

(天文與曆法的所有農曆閏12月其年份有誤  -->  顯示為下一年的年份)

例  3359/01/21 應為農曆 3358年戊午年 ( 馬 )閏十二月初一 星期日

但天文與曆法為陰曆 3359年閏12月 1日

在 [ C ] [ F ] [ J ] 欄中的日期為若為 1900/01/01 ~ 9999/12/31 為EXCEL 的日期時間格式可做算術使用

在 [ C ] [ F ] [ J ] 欄中若前方有 [ T ] 英文字母出現

則代表此日期為 1900/01/01 之前的日期則為文字格式

因EXCEL 日期時間格式的起始值為 1900/01/01 超過此日期之前 EXCEL 並無法識別因此需轉為文字格式方能正常運作

此程式與 (寿星天文历(天文历书工具)  )會有誤差至最大數小時是因為 寿星天文历少了以下的修正項

             c = -0.000012932 * (y - 1955)^2

所以在 -9999 ~ 1955  及  2005 ~ 9999 間若年代越遠則誤差會越大 ( 寿星天文历會較快 )

此修正項之說明及參考資訊如下 :

Since the values of ΔT for the interval 1955 to 2005 were derived independent of any lunar ephemeris,
no correction is needed for this period. The uncertainty in ΔT over this period can be estimated from scatter in the measurements.

以上修正項請參閱NASA網站   
http://eclipse.gsfc.nasa.gov/SEcat5/deltatpoly.html


点评

资料不错,附件在11楼  发表于 2013-9-23 09:30

TA的精华主题

TA的得分主题

发表于 2011-11-12 19:18 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢分享!!!!!!!!

TA的精华主题

TA的得分主题

发表于 2011-12-18 05:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
感谢分享。。。。。。。。。。。。。

TA的精华主题

TA的得分主题

发表于 2011-12-18 07:45 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-12-18 10:43 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-12-18 12:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
{:soso__18011457288786363596_4:}

TA的精华主题

TA的得分主题

发表于 2011-12-18 12:18 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-12-18 12:24 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-12-18 20:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
顶一下,可是VBA在哪里?  

TA的精华主题

TA的得分主题

发表于 2012-3-11 14:41 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
谢谢,没有附件
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-21 21:46 , Processed in 0.047665 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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