Function ChangeToMiladi(DateParam) DateParam = trim(DateParam) Y = cInt(Left(DateParam, InStr(DateParam, "/") - 1)) M = cInt(Mid(DateParam, InStr(DateParam, "/") + 1, InStrRev(DateParam, "/") - InStr(DateParam, "/") - 1)) D = cInt(Mid(DateParam, InStrRev(DateParam, "/") + 1)) If Y < 1300 Then Y = Y + 1300 Miladi Y, M, D ChangeToMiladi = CStr(DateSerial(Y, M, D)) End Function Sub Miladi(Y, M, D) '******************* Leap year If Y = 1378 Then If M = 12 and D = 10 Then Y = 2000 : M = 2 : D = 29: exit sub end if If M = 12 and D > 10 Then D = D - 1 End If elseif Y=1379 then D = D - 1 if D = 0 then M = M - 1 if M > 0 and M < 7 then D = 31 if M > 6 then D = 30 if M = 0 then D = 29 M = 12 Y = Y - 1 end if end if End If '******************* If M < 10 Or (M = 10 And D < 11) Then Y = Y + 621 Else Y = Y + 622 End If Select Case M Case 1 If D < 12 Then M = 3: D = D + 20 Else M = 4: D = D - 11 End If Case 2 If D < 11 Then M = 4: D = D + 20 Else M = 5: D = D - 10 End If Case 3 If D < 11 Then M = 5: D = D + 21 Else M = 6: D = D - 10 End If Case 4 If D < 10 Then M = 6: D = D + 21 Else M = 7: D = D - 9 End If Case 5, 6, 8 If D < 10 Then M = M + 2: D = D + 22 Else M = M + 3: D = D - 9 End If Case 7 If D < 9 Then M = 9: D = D + 22 Else M = 10: D = D - 8 End If Case 9 If D < 10 Then M = 11: D = D + 21 Else M = 12: D = D - 9 End If Case 10 If D < 11 Then M = 12: D = D + 21 Else M = 1: D = D - 10 End If Case 11 If D < 12 Then M = 1: D = D + 20 Else M = 2: D = D - 11 End If Case 12 If D < 10 Then M = 2: D = D + 19 Else M = 3: D = D - 9 End If End Select End Sub Function ChangeToShamsi(DateParam) M = cInt(Left(DateParam, InStr(DateParam, "/") - 1 )) D = cInt(Mid(DateParam, InStr(DateParam, "/") + 1, InStrRev(DateParam, "/") - InStr(DateParam, "/") - 1)) Y = cInt(Mid(DateParam, InStrRev(DateParam, "/") + 1)) If Y = 0 Then Y = 2000 If Y < 1000 Then Y = Y + 1900 Shamsi Y, M, D ChangeToShamsi = Trim(Y) & "/" & Trim(M) & "/" & Trim(D) End Function Sub Shamsi(Y, M, D) '******************* Leap year If Y = 2000 Then If M > 2 Then Temp = DateSerial(Y, M, D) Temp = Temp + 1 Y = Year(Temp) M = Month(Temp) D = Day(Temp) End If End If '******************* If M < 3 Or (M = 3 And D < 21) Then Y = Y - 622 Else Y = Y - 621 End If Select Case M Case 1 If D < 21 Then M = 10: D = D + 10 Else M = 11: D = D - 20 End If Case 2 If D < 20 Then M = 11: D = D + 11 Else M = 12: D = D - 19 End If Case 3 If D < 21 Then M = 12: D = D + 9 Else M = 1: D = D - 20 End If Case 4 If D < 21 Then M = 1: D = D + 11 Else M = 2: D = D - 20 End If Case 5, 6 If D < 22 Then M = M - 3: D = D + 10 Else M = M - 2: D = D - 21 End If Case 7, 8, 9 If D < 23 Then M = M - 3: D = D + 9 Else M = M - 2: D = D - 22 End If Case 10 If D < 23 Then M = 7: D = D + 8 Else M = 8: D = D - 22 End If Case 11, 12 If D < 22 Then M = M - 3: D = D + 9 Else M = M - 2: D = D - 21 End If End Select End Sub