اینجا یه نفر پیدا نمیشه تبدیل تاریخ میلادی به شمسی رو بلد باشه؟
تو رو خدا اگه خواستین آدرس بذارین آدرسش کامل باشه .
Printable View
اینجا یه نفر پیدا نمیشه تبدیل تاریخ میلادی به شمسی رو بلد باشه؟
تو رو خدا اگه خواستین آدرس بذارین آدرسش کامل باشه .
دوست عزیز برای تبدیل تاریخ میلادی به شمسی و همچنین برعکس اون یعنی تبدیل تاریخ شمسی به میلادی یک تابع کامل نوشته ام که البته میتونم بهتون به قیمت 50 هزار تومن بفروشم . درضمن هر نوع فانکشن دیگه ای که خواستی به من بگو واست مینویسم .
سلامنقل قول:
نوشته شده توسط sa_2077
اين يه امتحان بكنيد :
کد:Public Function FDate(ByVal EDate_ As String, ByVal FullDate As Boolean) As String
Dim EDate As String
Dim FYear As String
Dim FMonth As String
Dim FDay As String
Dim tmpDate As Date
Dim Farsi_Date As String
Dim EYear As Integer
Dim EMonth As Integer
Dim EDay As Integer
Dim Full_Date As String
If EDate_.Equals("") Then
EDate = DateTime.Now
Else
EDate = EDate_
End If
EYear = CInt(Microsoft.VisualBasic.DateAndTime.Year(EDate))
EMonth = CInt(Microsoft.VisualBasic.DateAndTime.Month(EDate))
EDay = CInt(Microsoft.VisualBasic.DateAndTime.Day(EDate))
Select Case EMonth
Case 1, 2 : FYear = EYear - 622
Case 3
If EDay <= 20 Then
FYear = EYear - 622
Else
FYear = EYear - 621
End If
Case 4, 5, 6, 7, 8, 9, 10, 11, 12 : FYear = EYear - 621
End Select
Select Case EMonth
Case 1
If EDay <= 20 Then
FMonth = 10
FDay = EDay + 10
Else
FMonth = 11
FDay = EDay - 20
End If
Case 2
If EDay <= 19 Then
FMonth = 11
FDay = EDay + 11
Else
FMonth = 12
FDay = EDay - 19
End If
Case 3
If (EYear Mod 4 = 0) Then ' This Year Is Kabiseh
If EDay <= 20 Then
FMonth = 12
FDay = EDay + 10
Else
FMonth = 1
FDay = EDay - 20
End If
Else
If EDay <= 20 Then
FMonth = 12
FDay = EDay + 9
Else
FMonth = 1
FDay = EDay - 20
End If
End If
Case 4
If EDay <= 20 Then
FMonth = 1
FDay = EDay + 11
Else
FMonth = 2
FDay = EDay - 20
End If
Case 5
If EDay <= 21 Then
FMonth = 2
FDay = EDay + 10
Else
FMonth = 3
FDay = EDay - 21
End If
Case 6
If EDay <= 21 Then
FMonth = 3
FDay = EDay + 10
Else
FMonth = 4
FDay = EDay - 21
End If
Case 7
If EDay <= 22 Then
FMonth = 4
FDay = EDay + 9
Else
FMonth = 5
FDay = EDay - 22
End If
Case 8
If EDay <= 22 Then
FMonth = 5
FDay = EDay + 9
Else
FMonth = 6
FDay = EDay - 22
End If
Case 9
If EDay <= 22 Then
FMonth = 6
FDay = EDay + 9
Else
FMonth = 7
FDay = EDay - 22
End If
Case 10
If EDay <= 22 Then
FMonth = 7
FDay = EDay + 8
Else
FMonth = 8
FDay = EDay - 22
End If
Case 11
If EDay <= 21 Then
FMonth = 8
FDay = EDay + 9
Else
FMonth = 9
FDay = EDay - 21
End If
Case 12
If EDay <= 21 Then
FMonth = 9
FDay = EDay + 9
Else
FMonth = 10
FDay = EDay - 21
End If
End Select
Farsi_Date = CStr(FYear) & "/" & CStr(FMonth) & "/" & CStr(FDay)
tmpDate = DateValue(Farsi_Date)
Select Case FYear
Case 1304, 1309, 1313, 1317, 1321, 1325, 1329, 1333, 1337, 1342, 1346, 1350, 1354, 1358, 1362, 1366, 1370, 1375, 1379, 1383, 1387, 1391, 1395, 1399, 1404, 1408, 1412, 1416, 1420, 1424, 1428, 1432 : tmpDate = DateAdd("d", 1, tmpDate)
End Select
If FullDate Then
Select Case DateTime.Now.DayOfWeek
Case DateTime.Now.DayOfWeek.Sunday
Full_Date = "يكشنبه"
Case DateTime.Now.DayOfWeek.Monday
Full_Date = "دوشنبه"
Case DateTime.Now.DayOfWeek.Tuesday
Full_Date = "سه شنبه"
Case DateTime.Now.DayOfWeek.Wednesday
Full_Date = "چهار شنبه"
Case DateTime.Now.DayOfWeek.Thursday
Full_Date = "پنج شنبه"
Case DateTime.Now.DayOfWeek.Friday
Full_Date = "جمعه"
Case DateTime.Now.DayOfWeek.Saturday
Full_Date = "شنبه"
End Select
Full_Date += " " + FarsiDigit(tmpDate.Day)
Select Case FMonth
Case 1
Full_Date += " " + "فروردين"
Case 2
Full_Date += " " + "ارديبهشت"
Case 3
Full_Date += " " + "خرداد"
Case 4
Full_Date += " " + "تير"
Case 5
Full_Date += " " + "مرداد"
Case 6
Full_Date += " " + "شهريور"
Case 7
Full_Date += " " + "مهر"
Case 8
Full_Date += " " + "آبان"
Case 9
Full_Date += " " + "آذر"
Case 10
Full_Date += " " + "دي"
Case 11
Full_Date += " " + "بهمن"
Case 12
Full_Date += " " + "اسفند"
End Select
Full_Date += " " + FYear
FDate = Full_Date
Else
FDate = CStr(tmpDate)
End If
End Function
در نگارش جدید دانت نت فریم ورک ۲ُ، کلاس PersianCalendar توسط مایکروسافت پیاده سازی شده و برای تبدیل تاریخ میلادی به شمسی میتونید از این کلاس توکار استفاده کنید.
در صورت نیاز به امکانات بیشتر میتونید از Farsi Library جناب اسکندری استفاده کنید: [ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
سلام به خاطر جواب ممنون
تقویم جناب اسکندری رو قبلاdownload کردم ولی نتونستم بازش کنم add هم نمیشه......
شما تونستین باهاش کارکنید؟
اونو ترجیح میدم چون خیلی کامله
سلام به خاطر جواب ممنوننقل قول:
نوشته شده توسط .: Parham :.
تقویم جناب اسکندری رو قبلاdownload کردم ولی نتونستم بازش کنم add هم نمیشه......
شما تونستین باهاش کارکنید؟
اونو ترجیح میدم چون خیلی کامله
البته به غیر از PersinCalendar.
چه نیازی هست به چیز دیگه اینقل قول:
کلاسس PersinCalendar تمام نیازها را برآورده میکند ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
سلام مجدد
اگه احیاناَ مشکلی داری باید بگم که اول یک نمونه از System.Globalization.PersianCalendar بساز (با کمک دستور New) حالا تابع ToDateTime میتونه تاریخ شمسی را به میلادی تبدیل کنه و سه تابع GetDayOfMonth و GetMonth و GetYear را برای حالت معکوس استفاده کن.