注册 登录
编程论坛 VB6论坛

我做了一个公农历转换程序,请大家多指教

大话西游 发布于 2006-04-05 22:12, 1567 次点击

这是一个公农历转换小程序,类不全是我做的,大家可以调用。我做了部分修改。

也请大家多多指教。

只有本站会员才能查看附件,请 登录

[此贴子已经被作者于2006-4-5 22:12:04编辑过]

14 回复
#2
zyqsyk2006-04-10 08:49
做得挺好,也很实用,如果把窗体下面显示大小调整一下更好
#3
珞珈山2006-04-27 20:29

很使用,不过界面小了点!

#4
shenqk2006-04-28 15:35
我在运行程序时出错:

编译错误:用户定义类型未定义
Dim t As clsDate …………此语句有问题。

这是怎么一回事,如何纠正?
#5
ghj20212006-04-30 13:42
强悍~
学习中`
#6
shenqk2006-05-13 13:03
诸位网友:你们在运行这个程序时,难道没有遇到过我遇到的问题吗?



我在运行程序时出错:

编译错误:用户定义类型未定义
Dim t As clsDate …………此语句有问题。

这是怎么一回事,如何纠正?
#7
shenqk2006-05-15 15:43
不能运行的程序再好也等于零!
#8
shenqk2006-05-17 12:46

大话西游:你好!

我在运行程序时出错:

编译错误:用户定义类型未定义
Dim t As clsDate …………此语句有问题。

这是怎么一回事,如何纠正?

上面这段话你应该早已看到,请你帮我解决一下问题,让我好用这个公农历转换程序!

谢谢了!!!

#9
shenqk2006-05-31 08:49

我已经成功运行“公农历转换程序”。
一个小建议:农历月份最好采用汉字:正月、二月……十一月、十二月。

#10
azraelsw2006-05-31 09:03
回复
以下是引用shenqk在2006-4-28 15:35:00的发言:
我在运行程序时出错:

编译错误:用户定义类型未定义
Dim t As clsDate …………此语句有问题。

这是怎么一回事,如何纠正?

你运行的时候
要运行XXX.VBP
不是XXX.FRM

#11
shenqk2006-05-31 15:28

受教了,谢谢!

#12
shenqk2006-06-02 07:48

这个“公农历转换程序”中,农历常量(数据位)是如何确定的?

为什么2006年的农历常量是 &H10ABB7 ?

#13
shenqk2012-08-14 12:21
'传入   日天干地支
Public Function GanRi(nYear As Long, Numn As Long, nDay As Long) As String
    Dim TempStr As String
    'G = 4C + [C / 4] + 5y + [y / 4] + [3 * (M + 1) / 5] + d - 3
    'Z = 8C + [C / 4] + 5y + [y / 4] + [3 * (M + 1) / 5] + d + 7 + i
    '例如:查2006年4月1日的干支日。 将数值代入计算公式。
    'G =4*20 + [20 / 4] + 5*06 + [06 / 4] + [3 * (4 + 1) / 5] + 1 - 3 =197
    'Z =8*20 + [20 / 4] + 5*06 + [06 / 4] + [3 * (4 + 1) / 5] + 1 + 7 + 6 =213
    '其中 C 是世纪数减一,y 是年份后两位,M 是月份,d 是日数。1月和2月按上一年的13月和14月来算。奇数月i=0,偶数月i=6。G 除以10的余数是天干,Z 除以12的余数是地支。
    ' 计算时带[ ]的数表示取整
    Dim G As Long
    Dim Z As Long
    Dim i As Long
    Dim C As Long
    Dim Y As Long
   
    C = Left(nYear, 2)
    Y = Right(nYear, 2)
    If Numn Mod 2 = 0 Then i = 6 Else i = 0
    G = 4 * C + Fix(C / 4) + 5 * Y + Fix(Y / 4) _
        + Fix(3 * (Numn + 1) / 5) + nDay - 4 '干支
   
    Z = 8 * C + Fix(C / 4) + 5 * Y + Fix(Y / 4) _
        + Fix(3 * (Numn + 1) / 5) + nDay + 6 + i '地支
    G = G Mod 10
    Z = Z Mod 12
    ZDay = G
    TempStr = Gan(Abs(G)) & Zhi(Abs(Z))
    GanRi = TempStr
End Function

"1月和2月按上一年的13月和14月来算" 这个程序没有列出。
还有,当Y = 0时,如2000年1月18日,这个程序如何写?
#14
shenqk2012-12-08 19:56
2012年的“大雪”应该是12月7日,而该公农历转换程序显示的是12月6日。
如何更正?
#15
木示2021-12-04 17:39
转换成八字有的不正确
1