| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1554 人关注过本帖
标题:请教VB获取二十四节气数据
只看楼主 加入收藏
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
取得立春日期后 往后推呗

DO IT YOURSELF !
2015-01-08 10:50
xzlxzlxzl
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:湖北
等 级:贵宾
威 望:125
帖 子:1091
专家分:5825
注 册:2014-5-3
收藏
得分:0 
原想从立春开始往后每个节气按365.2422/24=15.218425的间隔推算,结果发现有的日期不准确,如是以1997年的各节气时间为标准来推算,发现日期基本准确,但仍然不能精确到秒,能精确到小时就很不错了,实在不行用查表完成吧。


Function getSolar(inYear As Integer) As String
  '根据给出的年份返回该年份所有节气准确时间,精确到秒,从立春开始用逗号间隔开
  Const y_s = 31556925.9747        '一年的总秒数
  Const bs = "1997-01-05 15:24:28"   '1997年小寒的准确时间
  Const jq = "小寒,大寒,立春,雨水,惊蛰,春分,清明,谷雨,立夏,小满,芒种,夏至,小暑,大暑,立秋,处暑,白露,秋分,寒露,霜降,立冬,小雪,大雪,冬至"
  Const jqjg = "0,21198.05,42457.483,63807.02,85299.65,106950.2,128791.8,150818.35,173034.967,195413.42,217928.05,240535.467,263184.92,285830.97,308411.833,330894.72,353224.35,375390.983,397360.7,419150.283,440750.167,462203.083,483520.4,504401.42"
  Dim i As Integer, j As Integer, c As Double, d1 As Date, m() As String, n() As String, b(23) As Date, a As String
  m = Split(jq, ","): n = Split(jqjg, ",")
  c = (inYear - 1997) * y_s   '获取给出的年份和基础年份间隔的总秒数
  d1 = DateAdd("s", c, bs)    '获取该年份的小寒具体日期,精确到秒
  If UBound(m) <> 23 And UBound(n) <> 23 Then Exit Function
  For i = 0 To 23
    c = Val(n(i)) * 60
    b(i) = DateAdd("s", c, d1)
  Next
  a = ""
  For i = 0 To 23
    j = i + 2
    If j > 23 Then j = j - 24
    a = a & inYear & "年" & m(j) & ":" & b(j) & ","
  Next
  a = Left(a, Len(a) - 1)
  getSolar = a
End Function

Private Sub Form_Click()
  Dim y As Integer, a As String, b() As String, i As Integer
  y = InputBox("请输入查询年份:")
  If y < 1900 Then y = 1997
  a = getSolar(y)
  b = Split(a, ",")
  Me.Cls
  For i = 0 To 23
    Print b(i)
  Next
End Sub

Private Sub Form_Load()
  Me.Show
  Me.AutoRedraw = True
  Form_Click
End Sub

1900年开始150年各节气时间表.rar (31.64 KB)
2015-01-08 21:58
益西翁登
Rank: 4
等 级:业余侠客
威 望:1
帖 子:126
专家分:272
注 册:2010-2-22
收藏
得分:0 
受益了,谢谢!
2015-01-10 11:12
renxiaoyao36
Rank: 9Rank: 9Rank: 9
来 自:七宝中学
等 级:贵宾
威 望:31
帖 子:347
专家分:1077
注 册:2014-9-18
收藏
得分:0 
回复 2楼 wp231957
你查到的代码应该是Pascal或者C语言(话说我要不是学过点Pascal也看不懂这玩意)

编程蛋疼的不是枯燥,而是辛辛苦苦编完几百行的代码,运行,“Runtime Error “xxx””。
2015-01-11 12:08
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
回复 14楼 renxiaoyao36
呵,你这大葱插的,也不像啊!
pasical里{}是用来注释的,语句体是以begin开始end结束。用花括号表示语句体的是类c格式的语言。如c、java、flash等。
幸亏我常在c里混,对c稍微熟悉那么一点。

能编个毛线衣吗?
2015-01-11 13:12
yangfrancis
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:贵宾
威 望:141
帖 子:1510
专家分:7661
注 册:2014-5-19
收藏
得分:0 
二十四节气是根据北斗的摇光星所指向的地支方位来划定的,人都想不出该怎么求证,何况程序。
2015-01-12 23:36
快速回复:请教VB获取二十四节气数据
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024672 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved