بهترین تبدیل تاریخ میلادی به شمسی در vb6 و یک سوال

masoudk215

کاربر تازه وارد
تازه وارد
سلام و عرض ادب

آقا اگر فکر میکنید پست بهتری هست مدیرا پاک کنن.
چون خیلی گشتم ولی چیزی ک ب سلیقم باشه رو پیدا نکردم


و با کلی جستجو و این حرفا ی دونه تبدیل تاریخ برا خودم نوشتم. حالا هر چقدر که برنامه نویسیش بده ببخشید


خلاصه که برنامش اینه

البته بهترین از نظر خودم


کد:
If Year(Date) Mod 4 = 0 Then
If Month(Date) = 1 Then
salshamsi = Year(Date) - 622
ElseIf Month(Date) = 2 Then
salshamsi = Year(Date) - 622
ElseIf Month(Date) = 3 Then
If Day(Date) <= 19 Then
salshamsi = Year(Date) - 622
Else
salshamsi = Year(Date) - 621
End If
ElseIf Month(Date) = 4 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 5 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 6 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 7 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 8 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 9 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 10 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 11 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 12 Then
salshamsi = Year(Date) - 621
End If
Else
If Month(Date) = 1 Then
salshamsi = Year(Date) - 622
ElseIf Month(Date) = 2 Then
salshamsi = Year(Date) - 622
ElseIf Month(Date) = 3 Then
If Day(Date) <= 20 Then
salshamsi = Year(Date) - 622
Else
salshamsi = Year(Date) - 621
End If
ElseIf Month(Date) = 4 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 5 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 6 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 7 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 8 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 9 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 10 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 11 Then
salshamsi = Year(Date) - 621
ElseIf Month(Date) = 12 Then
salshamsi = Year(Date) - 621
End If
End If
If Year(Date) Mod 4 = 0 Then
feb = 29
Else
feb = 28
End If
tk = (Year(Date) - 1) \ 4
mm1 = Month(Date) - 1
If mm1 = 0 Then
rm = 0
ElseIf mm1 = 1 Then
rm = 31
ElseIf mm1 = 2 Then
rm = (31 + feb)
ElseIf mm1 = 3 Then
rm = (31 + feb + 31)
ElseIf mm1 = 4 Then
rm = (31 + feb + 31 + 30)
ElseIf mm1 = 5 Then
rm = (31 + feb + 31 + 30 + 31)
ElseIf mm1 = 6 Then
rm = (31 + feb + 31 + 30 + 31 + 30)
ElseIf mm1 = 7 Then
rm = (31 + feb + 31 + 30 + 31 + 30 + 31)
ElseIf mm1 = 8 Then
rm = (31 + feb + 31 + 30 + 31 + 30 + 31 + 31)
ElseIf mm1 = 9 Then
rm = (31 + feb + 31 + 30 + 31 + 30 + 31 + 31 + 30)
ElseIf mm1 = 10 Then
rm = (31 + feb + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31)
ElseIf mm1 = 11 Then
rm = (31 + feb + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30)
ElseIf mm1 = 12 Then
rm = (31 + feb + 31 + 30 + 31 + 30 + 31 + 31 + 30 + 31 + 30 + 31)
End If
km = ((Year(Date) - 1) * 365) + (rm) + (Day(Date)) + (tk)
khas = ((km - 226899) - (salshamsi \ 4)) Mod 365
msh = 1
For kam = 1 To 6
If khas > 31 Then
khas = khas - 31
msh = msh + 1
Else
rsh = khas
Exit For
End If
Next


For kam = 1 To 6
If khas > 30 Then
khas = khas - 30
msh = msh + 1
Else
rsh = khas
Exit For
End If
Next
If salshamsi Mod 128 = 0 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 4 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 8 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 12 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 16 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 20 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 24 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 29 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 33 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 38 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 41 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 45 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 59 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 53 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 57 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 62 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 66 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 70 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 74 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 78 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 82 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 86 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 90 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 95 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 99 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 103 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 107 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 111 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 115 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 119 Then
rsh = rsh + 1
ElseIf salshamsi Mod 128 = 124 Then
rsh = rsh + 1
End If
Label1.Caption = salshamsi
Label2.Caption = msh
Label3.Caption = rsh
اینو توی فرم لود (form_load) نوشتمش، خروجیاشم توی سه تا لیبل (label) نمایش داده میشه
البته که باید تاریخ سیستم درست باشه

حالا از همه اینا ک بگذریم

میخواستم این برنامه ای ک نوشتم رو توی ماژول بزارم و اون سه تا خروجی آخرم رو(منظور salshamsi, msh, rsh) بتونم توی فرم ها استفاده کنم. اما نمیشه. فقط اسمی که برای مثلا فانکشن انتخاب میکنم رو میاره

یه توضیح بدین ممنون میشم
 
بالا