PDA

View Full Version : چگونگی محاسبه اختلاف بین تاریخ شمسی



faravani
پنج شنبه 12 شهریور 1388, 13:09 عصر
با سلام خدمت دوستان
آیا کسی تا حالا اختلاف بین 2 تاریخ شمسی رو محاسبه کرده؟اگه کسی تابعی سراغ داره ممنون میشم کمکم کنه
با تشکر

mortezamhd
پنج شنبه 12 شهریور 1388, 15:13 عصر
یکی از کامپوننت های تاریخ شمسی این کارو میکنه که اگر جست و جو کنی پیداش میکنی

shocraneh
پنج شنبه 12 شهریور 1388, 23:11 عصر
ین پروژه کارای زیادی می نه از همین سایت گرفته بودم متاسفانه لینکشو نداشتم بزارم
persiantoolssample
Public Function ShamsiDateDiff(ByVal Date1 As String, ByVal Date2 As String, Optional ByVal Seperator As String = "/") As Integer
Dim pc As New Globalization.PersianCalendar
Dim da1 = Date1.Split(Seperator)
Dim da2 = Date2.Split(Seperator)
Dim dt1 = pc.ToDateTime(da1(0), da1(1), da1(2), 0, 0, 0, 0)
Dim dt2 = pc.ToDateTime(da2(0), da2(1), da2(2), 0, 0, 0, 0)



Return DateDiff(DateInterval.Day, dt1, dt2)

End Function


تو برنامه

Label14.Text = ShamsiDateDiff(history, h, "/").ToString

majid_vb_2008
جمعه 13 شهریور 1388, 23:07 عصر
ین پروژه کارای زیادی می نه از همین سایت گرفته بودم متاسفانه لینکشو نداشتم بزارم
persiantoolssample
Public Function ShamsiDateDiff(ByVal Date1 As String, ByVal Date2 As String, Optional ByVal Seperator As String = "/") As Integer
Dim pc As New Globalization.PersianCalendar
Dim da1 = Date1.Split(Seperator)
Dim da2 = Date2.Split(Seperator)
Dim dt1 = pc.ToDateTime(da1(0), da1(1), da1(2), 0, 0, 0, 0)
Dim dt2 = pc.ToDateTime(da2(0), da2(1), da2(2), 0, 0, 0, 0)



Return DateDiff(DateInterval.Day, dt1, dt2)

End Function
تو برنامه

Label14.Text = ShamsiDateDiff(history, h, "/").ToString


دوست من كار منم گيره همين برنامه است
اگه بتوني برامون آپلود كني ممنون مي شيم

mortezamhd
شنبه 14 شهریور 1388, 00:42 صبح
این کامپوننت فکر کنم بدردت بخوره مال یکی از دوستان برنامه نویسه:لبخندساده:

ali_md110
شنبه 14 شهریور 1388, 01:17 صبح
اگر میخواین تفاوت روز یا ماه یا سال رو بدست بیارید تابع زیر شاید بدردتون بخوره

Public Function datedif(ByVal sdate As String, ByVal sdate1 As String) As String
If IsNumeric(sdate.Replace("/", "")) = False Then Return 0
If IsNumeric(sdate1.Replace("/", "")) = False Then Return 0
Try
If sdate.Length <> 10 Then Return 0
If sdate1.Length <> 10 Then Return 0
Dim Date_Shamsi As New Globalization.PersianCalendar()

Dim Date_Miladi1 As DateTime = Date_Shamsi.ToDateTime(sdate.Substring(0, 4), sdate.Substring(5, 2), _
sdate.Substring(8, 2), _
0, 0, 0, 0, _
Globalization.PersianCalendar.PersianEra)
Dim Date_Miladi2 As DateTime = Date_Shamsi.ToDateTime(sdate1.Substring(0, 4), sdate1.Substring(5, 2), _
sdate1.Substring(8, 2), _
0, 0, 0, 0, _
Globalization.PersianCalendar.PersianEra)


Dim rooz As Long = DateDiff(DateInterval.Day, Date_Miladi1, Date_Miladi2)
Dim mah As Long = DateDiff(DateInterval.Month, Date_Miladi1, Date_Miladi2)
Dim sal As Long = DateDiff(DateInterval.Year, Date_Miladi1, Date_Miladi2)

Return sal.ToString & "/" & mah.ToString & "/" & rooz.ToString
Catch ex As Exception

MsgBox("تاریخ صجیج وارد کنید")
Return 0
End Try

End Function

arsalansalar
شنبه 14 شهریور 1388, 07:54 صبح
http://barnamenevis.org/forum/showthread.php?t=175669