Access开发培训
网站公告
·Access专家课堂QQ群号:151711184    ·Access快速开发平台下载地址及教程    ·欢迎加入Access专家课堂微信群!    ·如何快速搜索本站文章|示例|资料    
您的位置: 首页 > 技术文章 > Access数据库-模块/函数/VBA

公元纪年与干支纪年的换算

时 间:2014-10-17 11:00:10
作 者:在水一方   ID:20576  城市:沈阳
摘 要:网上有好多公元纪年转换为干支纪年的文章,但是反向转换的文章却没有,今天写一个逆转换函数。
正 文:

点击下载此附件

动画演示:


Function gzjn(StrYear As String) As String    '公元转干支纪年

    On Error GoTo Err
    Dim a, b, c As Integer
    Dim sx, tg, dz As String
    a = Int(StrYear) - 4
    b = (a Mod 10) + 1
    c = (a Mod 12) + 1
    tg = Mid("甲乙丙丁戊己庚辛壬癸", b, 1)  ' 天干
    dz = Mid("子丑寅卯辰巳午未申酉戌亥", c, 1)    '地支
    sx = Mid("鼠牛虎兔龙蛇马羊猴鸡狗猪", c, 1)    '生肖
    gzjn = tg & dz & sx & "年"
Err:
End Function


Function gyjn(StrYear As String) As String    '干支转公元纪年
    On Error GoTo Err
    Dim a, b, c , d, t As Integer
    Dim tg, dz As String
    tg = Left(StrYear, 1)
    dz = Mid(StrYear, 2, 1)
    a = InStr("甲乙丙丁戊己庚辛壬癸", tg)   ' 天干
    b = InStr("子丑寅卯辰巳午未申酉戌亥", dz)  '地支
    For t = 0 To 5   
        For d = 0 To 11
            If a + 10 * t = b + 12 * d Then    '计算对应的60数内的值
                gyjn = a + 10 * t + 3
                gyjn = gyjn + 60 * (Year(Date) \ 60) '推算最近的公元纪年,60年一循环。
                Exit Function
            End If
        Next
    Next
Err:
End Function

Access软件网QQ交流群 (群号:483923997)       Access源码网店

常见问答:

技术分类:

相关资源:

专栏作家

关于我们 | 服务条款 | 在线投稿 | 友情链接 | 网站统计 | 网站帮助