توابع مربوط به تاریخ در Vb.net
سلام دوستان
من به 2 تا تابع احتیاج دارم که توضیحاتش رو خدمتون میدم ( vb.net )
تابع اول : میخوام که یک عدد رو به یک تاریخ شمسی اضافه کنه و تاریخ جدید رو بده
مثال 30 روز رو به 1394/01/01 اضافه کنه و خروجی بشه 1394/01/31
تابع دوم : 2 تا تاریخ شمسی رو با هم مقایسه کنه و اختلافش رو به مقدار روز بهمون بده
ممنون از همه اگر جوابم رو بدین واقعا خوشحالم میکنین
نقل قول: توابع مربوط به تاریخ در Vb.net
دوست عزیز این نمونه کد ها رو معمولا با استفاده از dll انجام میدن که تو سایت های مختلف وجود داره یکم سرچ در اینترنت قطعا به جوابت میرسید
مثلا
نقل قول: توابع مربوط به تاریخ در Vb.net
نقل قول:
نوشته شده توسط
saeedgoodboy
تابع اول : میخوام که یک عدد رو به یک تاریخ شمسی اضافه کنه و تاریخ جدید رو بده
تابع دوم : 2 تا تاریخ شمسی رو با هم مقایسه کنه و اختلافش رو به مقدار روز بهمون بده
سلام دوست عزیز
اینم کدهایی که میخواستی:
Imports Microsoft.VisualBasic
Imports System.Globalization
Module Module1
Enum eYMD
Year = 0
Month = 1
Day = 2
End Enum
Enum eDateFormat
DMY = 0
YMD = 1
MDY = 2
End Enum
Public GPC As New System.Globalization.PersianCalendar
Public Function Shamsi_Now() As String
Dim mDT As Date = Date.Now
Return (String.Format("{0}/{1:00}/{2:00}", {GPC.GetYear(mDT), GPC.GetMonth(mDT), GPC.GetDayOfMonth(mDT)}))
End Function 'Shamsi_Now() As String تاریخ روز (شمسی) را برمیگرداند
Public Function ShDateAddDays(pDate As String, days As Integer) As String
Dim value As String = ""
pDate = pDate.Trim
If pDate = String.Empty Then Return (Shamsi_Now())
value = GPC.AddDays(pDate, days).ToString("yyyy/MM/dd")
Return value
End Function 'ShDateAddDays() AS String اضافه کردن (جمع و تفریق) روز به تاریخ شمسی
Public Function ShDateAddMonths(pDate As String, Months As Integer) As String
Dim value As String = ""
pDate = pDate.Trim
If pDate = String.Empty Then Return (Shamsi_Now())
value = GPC.AddMonths(pDate, Months).ToString("yyyy/MM/dd")
Return value
End Function 'ShDateAddDays() AS String اضافه کردن (جمع و تفریق) ماه به تاریخ شمسی
Public Function ShDateAddYears(pDate As String, Years As Integer) As String
Dim value As String = ""
pDate = pDate.Trim
If pDate = String.Empty Then Return (Shamsi_Now())
value = GPC.AddYears(pDate, Years).ToString("yyyy/MM/dd")
Return value
End Function 'ShDateAddDays() AS String اضافه کردن (جمع و تفریق) سال به تاریخ شمسی
Public Function ShDateAddYMD(pDate As String, YMDvalue As Integer, mode As eYMD) As String
Dim value As String = ""
pDate = pDate.Trim
If pDate = String.Empty Then Return (Shamsi_Now())
Select Case mode
Case eYMD.Day : value = GPC.AddDays(pDate, YMDvalue).ToString("yyyy/MM/dd")
Case eYMD.Month : value = GPC.AddMonths(pDate, YMDvalue).ToString("yyyy/MM/dd")
Case eYMD.Year : value = GPC.AddYears(pDate, YMDvalue).ToString("yyyy/MM/dd")
End Select
Return value
End Function 'ShDateAddDays() AS String اضافه کردن (جمع و تفریق) روز/ماه/سال به تاریخ شمسی
End Module
موفق باشید .....
نقل قول: توابع مربوط به تاریخ در Vb.net
اینم جواب سئوال دوم:
Public Function ShToMi(ByVal pDate As String) As String
pDate = pDate.Trim
If pDate = String.Empty Then Return (Shamsi_Now())
If pDate.IndexOf(":") > 0 Then pDate = Left(pDate, pDate.IndexOf(" "))
If pDate.Length = 8 And Val(pDate) < 100 Then pDate = "13" & pDate.Trim
Dim splt() As String = Split(pDate, "/") : Dim _YY As UShort = Val(splt(0)) : Dim _MM As Byte = Val(splt(1)) : Dim _DD As Byte = Val(splt(2))
Return (GPC.ToDateTime(_YY, _MM, _DD, TimeOfDay.Hour, TimeOfDay.Minute, TimeOfDay.Second, TimeOfDay.Millisecond).ToString("yyyy/MM/dd"))
End Function 'ShToMi() As String تبدیل تاریخ شمسی به میلادی
Public Function shDateDiff(pDate1 As String, pDate2 As String) As Long
Dim Value As Long = 0
Value = DateDiff(DateInterval.Day, CDate(ShToMi(pDate1)), CDate(ShToMi(pDate2)), FirstDayOfWeek.Saturday, FirstWeekOfYear.System)
Return Value
End Function 'روزهای بین 2 تاریخ شمسی را برمیگرداند
موفق باشید .....
نقل قول: توابع مربوط به تاریخ در Vb.net
نقل قول: توابع مربوط به تاریخ در Vb.net