http://thunder.eeap.cwru.edu/ccal/ccal.htm http://thunder.eeap.cwru.edu/ccal/ccal-2.4.tar.gz
ccal-24.zip (86 KB) 2008年1月21日即农历十二月21日是大寒。但我的VB计算是2008年1月20日即农历十
二月20日是大寒,到底哪个计算是正确的?可能VB计算有误,能否纠正一下?谢
谢。 Function GetiTermDay(ByVal CurUnYear As Integer, ByVal iTerm As Integer)
As Integer Dim offDate As Double
Dim vTermInfo As Variant
Dim SolarTerm As Variant '一个节气年的毫秒长度
Const sTermYearLen As Double = 31556925974.7
'求节气日期的定气常数(各个节气到小寒的分钟数)(如果能有人提供到秒的常
数就好了) vTermInfo = Array(0, 21208, 42467, 63836, 85337, 107014, 128867,
150921, _
173149, 195551, 218072, 240693, 263343, 285989, 308563, 331033, _
353350, 375494, 397447, 419210, 440795, 462224, 483532, 504758) 'SolarTerm = Array("小寒", "大寒", "立春", _
"雨水", "惊蛰", "春分", _
"清明", "谷雨", "立夏", _
"小满", "芒种", "夏至", _
"小暑", "大暑", "立秋", _
"处暑", "白露", "秋分", _
"寒露", "霜降", "立冬", _
"小雪", "大雪", "冬至") SolarTerm = Array(ChrW$(&H5C0F) & ChrW$(&H5BD2), ChrW$(&H5927) &
ChrW$(&H5BD2), ChrW$(&H7ACB) & ChrW$(&H6625), _
ChrW$(&H96E8) & ChrW$(&H6C34), ChrW$(&H60CA) &
ChrW$(&H86F0), ChrW$(&H6625) & ChrW$(&H5206), _
ChrW$(&H6E05) & ChrW$(&H660E), ChrW$(&H8C37) &
ChrW$(&H96E8), ChrW$(&H7ACB) & ChrW$(&H590F), _
ChrW$(&H5C0F) & ChrW$(&H6EE1), ChrW$(&H8292) &
ChrW$(&H79CD), ChrW$(&H590F) & ChrW$(&H81F3), _
ChrW$(&H5C0F) & ChrW$(&H6691), ChrW$(&H5927) &
ChrW$(&H6691), ChrW$(&H7ACB) & ChrW$(&H79CB), _
ChrW$(&H5904) & ChrW$(&H6691), ChrW$(&H767D) &
ChrW$(&H9732), ChrW$(&H79CB) & ChrW$(&H5206), _
ChrW$(&H5BD2) & ChrW$(&H9732), ChrW$(&H971C) &
ChrW$(&H964D), ChrW$(&H7ACB) & ChrW$(&H51AC), _
ChrW$(&H5C0F) & ChrW$(&H96EA), ChrW$(&H5927) &
ChrW$(&H96EA), ChrW$(&H51AC) & ChrW$(&H81F3)) '节气日的时差公式(时差为分钟)(从1900年大寒到现在这一节气的的分钟数)
offDate = (sTermYearLen * (CurUnYear - 1900)) / 60000 +
vTermInfo(iTerm - 1)
'以DateDiff求出日期
GetiTermDay = Day(DateAdd("n", offDate, CDate("1900-Jan-06
02:05:00"))) End Function
Private Sub Form_Load()
Debug.Print GetiTermDay(2008, 2)
'will return 20,so Da Han (大寒)is 2008-Jan-20.
End Sub
ccal-24.zip (86 KB) 2008年1月21日即农历十二月21日是大寒。但我的VB计算是2008年1月20日即农历十
二月20日是大寒,到底哪个计算是正确的?可能VB计算有误,能否纠正一下?谢
谢。 Function GetiTermDay(ByVal CurUnYear As Integer, ByVal iTerm As Integer)
As Integer Dim offDate As Double
Dim vTermInfo As Variant
Dim SolarTerm As Variant '一个节气年的毫秒长度
Const sTermYearLen As Double = 31556925974.7
'求节气日期的定气常数(各个节气到小寒的分钟数)(如果能有人提供到秒的常
数就好了) vTermInfo = Array(0, 21208, 42467, 63836, 85337, 107014, 128867,
150921, _
173149, 195551, 218072, 240693, 263343, 285989, 308563, 331033, _
353350, 375494, 397447, 419210, 440795, 462224, 483532, 504758) 'SolarTerm = Array("小寒", "大寒", "立春", _
"雨水", "惊蛰", "春分", _
"清明", "谷雨", "立夏", _
"小满", "芒种", "夏至", _
"小暑", "大暑", "立秋", _
"处暑", "白露", "秋分", _
"寒露", "霜降", "立冬", _
"小雪", "大雪", "冬至") SolarTerm = Array(ChrW$(&H5C0F) & ChrW$(&H5BD2), ChrW$(&H5927) &
ChrW$(&H5BD2), ChrW$(&H7ACB) & ChrW$(&H6625), _
ChrW$(&H96E8) & ChrW$(&H6C34), ChrW$(&H60CA) &
ChrW$(&H86F0), ChrW$(&H6625) & ChrW$(&H5206), _
ChrW$(&H6E05) & ChrW$(&H660E), ChrW$(&H8C37) &
ChrW$(&H96E8), ChrW$(&H7ACB) & ChrW$(&H590F), _
ChrW$(&H5C0F) & ChrW$(&H6EE1), ChrW$(&H8292) &
ChrW$(&H79CD), ChrW$(&H590F) & ChrW$(&H81F3), _
ChrW$(&H5C0F) & ChrW$(&H6691), ChrW$(&H5927) &
ChrW$(&H6691), ChrW$(&H7ACB) & ChrW$(&H79CB), _
ChrW$(&H5904) & ChrW$(&H6691), ChrW$(&H767D) &
ChrW$(&H9732), ChrW$(&H79CB) & ChrW$(&H5206), _
ChrW$(&H5BD2) & ChrW$(&H9732), ChrW$(&H971C) &
ChrW$(&H964D), ChrW$(&H7ACB) & ChrW$(&H51AC), _
ChrW$(&H5C0F) & ChrW$(&H96EA), ChrW$(&H5927) &
ChrW$(&H96EA), ChrW$(&H51AC) & ChrW$(&H81F3)) '节气日的时差公式(时差为分钟)(从1900年大寒到现在这一节气的的分钟数)
offDate = (sTermYearLen * (CurUnYear - 1900)) / 60000 +
vTermInfo(iTerm - 1)
'以DateDiff求出日期
GetiTermDay = Day(DateAdd("n", offDate, CDate("1900-Jan-06
02:05:00"))) End Function
Private Sub Form_Load()
Debug.Print GetiTermDay(2008, 2)
'will return 20,so Da Han (大寒)is 2008-Jan-20.
End Sub
解决方案 »
- 滚动条的位置
- 新建VC/C++/API群 欢迎加入
- 超简单问题100分相送
- 急、急:有关MFC库的问题?
- 程序时实播放没有问题,回放出现马赛克现象,为什么?
- 在mscomm控件串行通讯中,他要求发地址时校验位为1,发数据时校验位为0,我该怎么用mscomm来做呢
- 我在读一个 .mdb文件时,它说密码错误是怎么回事呀!!!!(在VC+下,DAO)!1
- 请问各位大侠学完C++之后想学Windows编程应该看哪些书做为教材?
- 请问怎么使用VC的调试器?哪儿有相关的文章和实例分析?
- 关于RAS远程拨号
- 请问现在上海应届毕业生,大概薪资有多少钱?
- 建立一个单文本对话框。。点击菜单弹出一个对话框的问题。。。。
GetiTermDay = Day(Round(DateAdd("n", offDate, CDate("1900-Jan-06 02:05:00"))))原来的Codes是Java.
真谢谢。难怪许多网站上的农历节气有错误,可能用的公式都一样。Thank you.
http://topic.csdn.net/u/20070705/19/d0f24d45-4f2d-4a5e-8212-6bf20fba7207.html