⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gongli2nongli.vb

📁 农历日历 农历日历 农历日历 农历日历 农历日历 农历日历 农历日历 农历日历
💻 VB
📖 第 1 页 / 共 3 页
字号:
        ShuXiang(11) = "猪"

        '农历日期名   
        DayName(0) = "*"
        DayName(1) = "初一"
        DayName(2) = "初二"
        DayName(3) = "初三"
        DayName(4) = "初四"
        DayName(5) = "初五"
        DayName(6) = "初六"
        DayName(7) = "初七"
        DayName(8) = "初八"
        DayName(9) = "初九"
        DayName(10) = "初十"
        DayName(11) = "十?quot;"
        DayName(12) = "十二"
        DayName(13) = "十三"
        DayName(14) = "十四"
        DayName(15) = "十五"
        DayName(16) = "十六"
        DayName(17) = "十七"
        DayName(18) = "十八"
        DayName(19) = "十九"
        DayName(20) = "二十"
        DayName(21) = "廿一"
        DayName(22) = "廿二"
        DayName(23) = "廿三"
        DayName(24) = "廿四"
        DayName(25) = "廿五"
        DayName(26) = "廿六"
        DayName(27) = "廿七"
        DayName(28) = "廿八"
        DayName(29) = "廿九"
        DayName(30) = "三十"

        '农历月份名   
        MonName(0) = "*"
        MonName(1) = "正"
        MonName(2) = "二"
        MonName(3) = "三"
        MonName(4) = "四"
        MonName(5) = "五"
        MonName(6) = "六"
        MonName(7) = "七"
        MonName(8) = "八"
        MonName(9) = "九"
        MonName(10) = "十"
        MonName(11) = "十一"
        MonName(12) = "腊"

        '公历每月前面的天数   
        MonthAdd(0) = 0
        MonthAdd(1) = 31
        MonthAdd(2) = 59
        MonthAdd(3) = 90
        MonthAdd(4) = 120
        MonthAdd(5) = 151
        MonthAdd(6) = 181
        MonthAdd(7) = 212
        MonthAdd(8) = 243
        MonthAdd(9) = 273
        MonthAdd(10) = 304
        MonthAdd(11) = 334

        

        '农历数据   
        NongliData(0) = 2635
        NongliData(1) = 333387
        NongliData(2) = 1701
        NongliData(3) = 1748
        NongliData(4) = 267701
        NongliData(5) = 694
        NongliData(6) = 2391
        NongliData(7) = 133423
        NongliData(8) = 1175
        NongliData(9) = 396438
        NongliData(10) = 3402
        NongliData(11) = 3749
        NongliData(12) = 331177
        NongliData(13) = 1453
        NongliData(14) = 694
        NongliData(15) = 201326
        NongliData(16) = 2350
        NongliData(17) = 465197
        NongliData(18) = 3221
        NongliData(19) = 3402
        NongliData(20) = 400202
        NongliData(21) = 2901
        NongliData(22) = 1386
        NongliData(23) = 267611
        NongliData(24) = 605
        NongliData(25) = 2349
        NongliData(26) = 137515
        NongliData(27) = 2709
        NongliData(28) = 464533
        NongliData(29) = 1738
        NongliData(30) = 2901
        NongliData(31) = 330421
        NongliData(32) = 1242
        NongliData(33) = 2651
        NongliData(34) = 199255
        NongliData(35) = 1323
        NongliData(36) = 529706
        NongliData(37) = 3733
        NongliData(38) = 1706
        NongliData(39) = 398762
        NongliData(40) = 2741
        NongliData(41) = 1206
        NongliData(42) = 267438
        NongliData(43) = 2647
        NongliData(44) = 1318
        NongliData(45) = 204070
        NongliData(46) = 3477
        NongliData(47) = 461653
        NongliData(48) = 1386
        NongliData(49) = 2413
        NongliData(50) = 330077
        NongliData(51) = 1197
        NongliData(52) = 2637
        NongliData(53) = 268877
        NongliData(54) = 3365
        NongliData(55) = 531109
        NongliData(56) = 2900
        NongliData(57) = 2922
        NongliData(58) = 398042
        NongliData(59) = 2395
        NongliData(60) = 1179
        NongliData(61) = 267415
        NongliData(62) = 2635
        NongliData(63) = 661067
        NongliData(64) = 1701
        NongliData(65) = 1748
        NongliData(66) = 398772
        NongliData(67) = 2742
        NongliData(68) = 2391
        NongliData(69) = 330031
        NongliData(70) = 1175
        NongliData(71) = 1611
        NongliData(72) = 200010
        NongliData(73) = 3749
        NongliData(74) = 527717
        NongliData(75) = 1452
        NongliData(76) = 2742
        NongliData(77) = 332397
        NongliData(78) = 2350
        NongliData(79) = 3222
        NongliData(80) = 268949
        NongliData(81) = 3402
        NongliData(82) = 3493
        NongliData(83) = 133973
        NongliData(84) = 1386
        NongliData(85) = 464219
        NongliData(86) = 605
        NongliData(87) = 2349
        NongliData(88) = 334123
        NongliData(89) = 2709
        NongliData(90) = 2890
        NongliData(91) = 267946
        NongliData(92) = 2773
        NongliData(93) = 592565
        NongliData(94) = 1210
        NongliData(95) = 2651
        NongliData(96) = 395863
        NongliData(97) = 1323
        NongliData(98) = 2707
        NongliData(99) = 265877
        '生成当前公历年、月、日   ==>   GongliStr   
        curYear = CurTime.Year
        curMonth = CurTime.Month
        curDay = CurTime.Day

        GongliStr = curYear & "年"
        If (curMonth < 10) Then
            GongliStr = GongliStr & "0" & curMonth & "月"
        Else
            GongliStr = GongliStr & curMonth & "月"
        End If
        If (curDay < 10) Then
            GongliStr = GongliStr & "0" & curDay & "日"
        Else
            GongliStr = GongliStr & curDay & "日"
        End If
        '生成当前公历星期   ==>   WeekdayStr   
        curWeekday = CurTime.DayOfWeek
        WeekdayStr = WeekName(curWeekday)
        '计算到初始时间1921年2月8日的天数:1921-2-8(正月初一)   
        TheDate = (curYear - 1921) * 365 + Int((curYear - 1921) / 4) + curDay + MonthAdd(curMonth - 1) - 38
        If ((curYear Mod 4) = 0 And curMonth > 2) Then
            TheDate = TheDate + 1
        End If
        '计算农历天干、地支、月、日   
        isEnd = 0
        m = 0
        Do
            If (NongliData(m) < 4095) Then
                k = 11
            Else
                k = 12
            End If
            n = k
            Do
                If (n < 0) Then
                    Exit Do
                End If
                '获取NongliData(m)的第n个二进制位的值   
                bit = NongliData(m)
                For i = 1 To n Step 1
                    bit = Int(bit / 2)
                Next
                bit = bit Mod 2
                If (TheDate <= 29 + bit) Then
                    isEnd = 1
                    Exit Do
                End If
                TheDate = TheDate - 29 - bit
                n = n - 1
            Loop
            If (isEnd = 1) Then
                Exit Do
            End If
            m = m + 1
        Loop
        curYear = 1921 + m
        curMonth = k - n + 1
        curDay = TheDate
        If (k = 12) Then
            If (curMonth = (Int(NongliData(m) / 65536) + 1)) Then
                curMonth = 1 - curMonth
            ElseIf (curMonth > (Int(NongliData(m) / 65536) + 1)) Then
                curMonth = curMonth - 1
            End If

        End If
        '生成农历天干、地支、属相   ==>   NongliStr   
        NongliStr = "农历:" & TianGan(((curYear - 4) Mod 60) Mod 10) & DiZhi(((curYear - 4) Mod 60) Mod 12) & "年"
        NongliStr = NongliStr & "(" & ShuXiang(((curYear - 4) Mod 60) Mod 12) & ")"
        '生成农历月、日   ==>   NongliDayStr   
        If (curMonth < 1) Then
            NongliDayStr = "闰" & MonName(-1 * curMonth)
        Else
            NongliDayStr = MonName(curMonth)
        End If
        NongliDayStr = NongliDayStr & "月"
        NongliDayStr = NongliDayStr & DayName(curDay)

        Return NongliStr & NongliDayStr & " " & WeekdayStr
    End Function
    '
    Public Function GetiTermDay(ByVal CurUnYear As Integer, ByVal iTerm As Integer) As String
        'CurUnYear:是年四位数
        'iTerm: 是从小寒开始的24节序号
        Dim offDate As Double
        Dim vTermInfo() As String
        Dim cTerm() As String
        '一个节气年的毫秒长度
        Const sTermYearLen As Double = 31556925974.7
        '求节气日期的定气常数(各个节气到小寒的分钟数)(如果能有人提供到秒的常数就好了)
        vTermInfo = Split("0,21208,42467,63836,85337,107014,128867,150921,173149,195551,218072,240693,263343,285989,308563,331033,353350,375494,397447,419210,440795,462224,483532,504758", ",")
        cTerm = Split("小寒,大寒,立春,雨水,惊蛰,春分,清明,谷雨,立夏,小满,芒种,夏至,小暑,大暑,立秋,处暑,白露,秋分,寒露,霜降,立冬,小雪,大雪,冬至", ",")
        '节气日的时差公式(时差为分钟)(从1900年大寒到现在这一节气的的分钟数)
        offDate = (sTermYearLen * (CurUnYear - 1900)) / 60000 + Convert.ToInt32(vTermInfo(iTerm - 1))
        '以DateDiff求出日期
        GetiTermDay = CStr(CType(DateAdd("n", offDate, CDate("1900-Jan-06 02:05:00")), Date)) + cTerm(iTerm - 1)
    End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -