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

📄 convert_date.vb

📁 this system of advanced library
💻 VB
字号:
Imports System
Imports System.Math
Namespace mpeg
    Public Class convert_date
        Public Sub New()
        End Sub
        Private shamsiDay, shamsiMonth, shamsiYear As Integer
        Private Function MiladiIsLeap(ByVal tt As Integer) As Boolean
            If (tt Mod 100 = 0 AndAlso tt Mod 400 = 0) OrElse (tt Mod 100 <> 0 AndAlso tt Mod 4 = 0) Then
                Return True
            End If
            Return False
        End Function
        Public Sub MiladiToShamsi(ByRef iMiladiMonth As Integer, ByRef iMiladiDay As Integer, ByRef iMiladiYear As Integer)
            Dim dayCount, farvardinDayDiff, deyDayDiff As Integer
            Dim sumDayMiladiMonth As Integer() = {0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334}
            Dim sumDayMiladiMonthLeap As Integer() = {0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335}
            farvardinDayDiff = 79
            If MiladiIsLeap(iMiladiYear) Then
                dayCount = sumDayMiladiMonthLeap(iMiladiMonth - 1) + iMiladiDay
            Else
                dayCount = sumDayMiladiMonth(iMiladiMonth - 1) + iMiladiDay
            End If
            If (MiladiIsLeap(iMiladiYear - 1)) Then
                deyDayDiff = 11
            Else
                deyDayDiff = 10
            End If
            If dayCount > farvardinDayDiff Then
                dayCount = dayCount - farvardinDayDiff
                If dayCount <= 186 Then
                    Select Case dayCount Mod 31
                        Case 0
                            shamsiMonth = Math.Floor(dayCount / 31)
                            shamsiDay = 31
                        Case Else
                            shamsiMonth = Math.Floor((dayCount / 31)) + 1
                            shamsiDay = (dayCount Mod 31)
                    End Select
                    shamsiYear = iMiladiYear - 621
                Else
                    dayCount = dayCount - 186
                    Select Case dayCount Mod 30
                        Case 0
                            shamsiMonth = Math.Floor((dayCount / 30)) + 6
                            shamsiDay = 30
                        Case Else
                            shamsiMonth = Math.Floor((dayCount / 30)) + 7
                            shamsiDay = (dayCount Mod 30)
                    End Select
                    shamsiYear = iMiladiYear - 621
                End If
            Else
                dayCount = dayCount + deyDayDiff
                Select Case dayCount Mod 30
                    Case 0
                        shamsiMonth = Math.Floor((dayCount / 30)) + 9
                        shamsiDay = 30
                    Case Else
                        shamsiMonth = Math.Floor((dayCount / 30)) + 10
                        shamsiDay = (dayCount Mod 30)
                End Select
                shamsiYear = iMiladiYear - 622
            End If
            iMiladiYear = shamsiYear
            iMiladiDay = shamsiDay
            iMiladiMonth = shamsiMonth
        End Sub
    End Class
End Namespace

⌨️ 快捷键说明

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