📄 convert_date.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 + -