PDA

View Full Version : درج تاريخ شمسي در Vb.net



Softprog
شنبه 17 مهر 1389, 13:52 عصر
با سلام
من بانك اطلاعاتي اكسسي دارم كه يك فيلد آن از نوع تاريخ مي باشد و مي خواهم تاريخ شمسي در آن قرار گيرد و وقتي كه در Vb.net فرم مي سازم و مي‌خواهم داخل فيلد تاريخ را با تاريخ شمسي پر كنم. تاريخ ميلادي ثبت مي كند.
چه كار بايد كرد؟
مثلا تاريخي مثل 30/2/1389 را نمي شناسد. چون ذاتاً اين تاريخ، تاريخ ميلادي است.
چه كار كنم؟
البته به غير از اينكه بخواهم نوع فيلد تاريخم را از نوع Text بگذارم راهي بهم نشان دهيد.
با تشكر

Ghaisard
شنبه 17 مهر 1389, 15:20 عصر
سلام

ميتوني از كلاس PersianCalendar استفاده كني، مثلاً :



Dim shamsiDate As New Globalization.PersianCalendar
Dim dt As Date = New Date(1384, 2, 31, New PersianCalendar())
TextBox1.Text = shamsiDate.GetYear(dt).ToString & "/" & _
shamsiDate.GetMonth(dt).ToString & "/" & _
shamsiDate.GetDayOfMonth(dt).ToString()

hooooman
شنبه 17 مهر 1389, 23:49 عصر
سلام
خب قهرا تايپي وجود نداره که بتوني فرمت شمسي تو بانکت ذخيره کني.بايد توي فيلد Vachar ذخيره کني
من خودم از 2 تا تابع زير براي تبديل ميلادي به شمسي استفاده ميکنم.اواي تاريخ روزو به شمسي بر ميگردونه و دومي 1 تاريخ مشخص ميلادي رو تبديل به شمسي ميکنه


Public Function Toshamsi() As String
Dim x As New System.Globalization.PersianCalendar()
Dim y As String = x.GetYear(Today)
Dim m As String = x.GetMonth(Today)
Dim d As String = x.GetDayOfMonth(Today)
If Len(Trim(d)) < 2 Then
d = "0" & d
End If
If Len(Trim(m)) < 2 Then
m = "0" & m
End If
Return d & "/ " & m & "/ " & y
End Function

و


Public Function ToshamsiByDate(ByVal miladidate As Date) As String
Dim x As New System.Globalization.PersianCalendar()
Dim y As String = x.GetYear(miladidate)
Dim m As String = x.GetMonth(miladidate)
Dim d As String = x.GetDayOfMonth(miladidate)
If Len(Trim(d)) < 2 Then
d = "0" & d
End If
If Len(Trim(m)) < 2 Then
m = "0" & m
End If
Return d & "/ " & m & "/ " & y
End Function