m2khosravizadeh
سه شنبه 21 آبان 1392, 12:05 عصر
با سلام.
من یه برنامه تو ورد نوشته ام که تاریخ میلادی به تاریخ شمسی تبدیل بشه. حالا مشکلم اینه که وقتی فایل وردی که برنامه رو توش نوشته ام باز می کنم، تاریخ به روز نمیشه. کسی میتونه کمکم کنه؟
سورس برنامه به صورت زیره:
[/INDENT]
Function Tarikh()
Dim spiner, Year1
spiner = Int(CDbl(CStr(Date) - 7385))
Year1 = Int(spiner / 365.25 + 1299)
Tarikh = Rooz(spiner) & "/" & Mah(spiner) & "/" & Year1
End Function
Function Mah(ByVal MyNumber)
Dim M1
If Int(((MyNumber * 100) Mod 36525) / 100) < 186 Then
M1 = Int(Int(((MyNumber * 100) Mod 36525) / 100) / 31)
Else
If Int((MyNumber / 365.25) Mod 4) = 0 Then
M1 = Int((Int(((MyNumber * 100) Mod 36525) / 100) - 186) / 30) + 6
Else
If Int(((MyNumber * 100) Mod 36525) / 100) < 336 Then
M1 = Int((Int(((MyNumber * 100) Mod 36525) / 100) - 186) / 30) + 6
Else
M1 = Int((Int(((MyNumber * 100) Mod 36525) / 100) - 336) / 29) + 11
End If
End If
End If
Mah = M1 Mod 12 + 1
End Function
Function Rooz(ByVal MyNumber)
If Int(((MyNumber * 100) Mod 36525) / 100) < 186 Then
R1 = Int((((MyNumber * 100) Mod 36525) / 100) Mod 31) + 1
Else
If (Int(MyNumber / 365.25)) Mod 4 = 0 Then
R1 = (Int(((MyNumber * 100) Mod 36525) / 100) - 186) Mod 30 + 1
Else
If Int(((E4 * 100) Mod 36525) / 100) < 336 Then
R1 = ((Int(((MyNumber * 100) Mod 36525) / 100) - 186) Mod 30) + 1
Else
R1 = ((Int(((MyNumber * 100) Mod 36525) / 100) - 336) Mod 29) + 1
End If
End If
End If
Rooz = R1
End Function
Public Sub Datum()
Selection.Text = Tarikh()
End Sub
من یه برنامه تو ورد نوشته ام که تاریخ میلادی به تاریخ شمسی تبدیل بشه. حالا مشکلم اینه که وقتی فایل وردی که برنامه رو توش نوشته ام باز می کنم، تاریخ به روز نمیشه. کسی میتونه کمکم کنه؟
سورس برنامه به صورت زیره:
[/INDENT]
Function Tarikh()
Dim spiner, Year1
spiner = Int(CDbl(CStr(Date) - 7385))
Year1 = Int(spiner / 365.25 + 1299)
Tarikh = Rooz(spiner) & "/" & Mah(spiner) & "/" & Year1
End Function
Function Mah(ByVal MyNumber)
Dim M1
If Int(((MyNumber * 100) Mod 36525) / 100) < 186 Then
M1 = Int(Int(((MyNumber * 100) Mod 36525) / 100) / 31)
Else
If Int((MyNumber / 365.25) Mod 4) = 0 Then
M1 = Int((Int(((MyNumber * 100) Mod 36525) / 100) - 186) / 30) + 6
Else
If Int(((MyNumber * 100) Mod 36525) / 100) < 336 Then
M1 = Int((Int(((MyNumber * 100) Mod 36525) / 100) - 186) / 30) + 6
Else
M1 = Int((Int(((MyNumber * 100) Mod 36525) / 100) - 336) / 29) + 11
End If
End If
End If
Mah = M1 Mod 12 + 1
End Function
Function Rooz(ByVal MyNumber)
If Int(((MyNumber * 100) Mod 36525) / 100) < 186 Then
R1 = Int((((MyNumber * 100) Mod 36525) / 100) Mod 31) + 1
Else
If (Int(MyNumber / 365.25)) Mod 4 = 0 Then
R1 = (Int(((MyNumber * 100) Mod 36525) / 100) - 186) Mod 30 + 1
Else
If Int(((E4 * 100) Mod 36525) / 100) < 336 Then
R1 = ((Int(((MyNumber * 100) Mod 36525) / 100) - 186) Mod 30) + 1
Else
R1 = ((Int(((MyNumber * 100) Mod 36525) / 100) - 336) Mod 29) + 1
End If
End If
End If
Rooz = R1
End Function
Public Sub Datum()
Selection.Text = Tarikh()
End Sub