明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1527|回复: 2

(curyear - 4) Mod 60) Mod 10 在公农历转换中

[复制链接]
发表于 2003-9-1 15:40:00 | 显示全部楼层 |阅读模式
(curyear - 4) Mod 60) Mod 10

在公家历转换在出现的如上语句,是天干地支的算法,请问有谁知道,到底为什么要这么算呢?一点提示也可以。
发表于 2003-9-3 20:08:00 | 显示全部楼层
其实熟悉天干地支知识的话,就知道,天干地支共有60种组合(即甲子、乙丑、丙寅、丁卯……),俗称一甲子即60年,公元元年往前数四年是农历的甲子年,(curyear - 4) Mod 60) Mod 10 可以得到甲、乙、丙、丁……,(curyear - 4) Mod 60) Mod 12可以得到子、丑、寅、卯、辰、巳、午……。如2003年按这样算可以得到9(0甲,1乙,2丙……9癸),7(0子,1丑,2寅……6午,7未,……11亥),这样2003就是癸未羊年。

评分

参与人数 1威望 +1 金钱 +10 贡献 +10 激情 +5 收起 理由
mccad + 1 + 10 + 10 + 5 【好评】好文章

查看全部评分

发表于 2003-9-4 11:56:00 | 显示全部楼层
参考程序如下:

Public Sub Test()
   MsgBox "今年是" & GetCNYearName(Year(Now)) & "年!"
End Sub

Public Function GetCNYearName(CurYear As Integer) As String
   Dim CNYear_TG As Variant, CNYear_DZ As Variant, CNYear_AN As Variant, Temp As Integer
   
   If CurYear < 4 Then Exit Function
   CNYear_TG = Array("甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸")
   CNYear_DZ = Array("子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥")
   CNYear_AN = Array("鼠", "牛", "虎", "兔", "龙", "蛇", "马", "羊", "猴", "鸡", "狗", "猪")
   Temp = ((CurYear - 4) Mod 60) Mod 12
   GetCNYearName = CNYear_TG(((CurYear - 4) Mod 60) Mod 10) & CNYear_DZ(Temp) & CNYear_AN(Temp)
End Function
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 14:40 , Processed in 0.171909 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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