javad2000
شنبه 09 تیر 1386, 03:01 صبح
سلام
خیلیهامون تا حالا دنبال راه حلی برای تبدیل تاریخ های شمسی و میلادی به یکدیگر می گشتیم. توابع و متدهای زیادی هم معرفی شده. اما بعد از کلی کلنجار با توابع VB و آزمون روش ها، الگوریتم ها و کامپوننت های مختلف تازه فهمیدم که مایکروسافت با تقدیم روزشمار فارسی در نسخه 2005 وی بی، کارها را بسیار آسان کرده.
به دو تابع زیر دقت کنید:
Function ShamsiToMiladi(ByVal Year As Integer, ByVal Month As Integer, ByVal Day As Integer) As Date
Dim A As New System.Globalization.PersianCalendar
Return A.ToDateTime(Year, Month, Day, 0, 0, 0, 0)
End Function
Function MiladiToShamsi(ByVal Year As Integer, ByVal Month As Integer, ByVal Day As Integer) As String
Dim A As Date = Year & "/" & Month & "/" & Day
Dim B As New System.Globalization.PersianCalendar
Return B.GetYear(A) & "/" & B.GetMonth(A) & "/" & B.GetDayOfMonth(A)
End Function
همین روش، برای تاریخ های قمری هم قابل اجراست، اما مشکل اینجاست که تاریخ های قمری که مایکروسافت محاسبه می کند، بر اساس تقویم عربستان سعودی است، نه تقویم قمری ایران. برای حل این مشکل هم باید راه حلی باشد، اگر کسی پیدا کرد لطفاً بگوید.
با تشکر
خیلیهامون تا حالا دنبال راه حلی برای تبدیل تاریخ های شمسی و میلادی به یکدیگر می گشتیم. توابع و متدهای زیادی هم معرفی شده. اما بعد از کلی کلنجار با توابع VB و آزمون روش ها، الگوریتم ها و کامپوننت های مختلف تازه فهمیدم که مایکروسافت با تقدیم روزشمار فارسی در نسخه 2005 وی بی، کارها را بسیار آسان کرده.
به دو تابع زیر دقت کنید:
Function ShamsiToMiladi(ByVal Year As Integer, ByVal Month As Integer, ByVal Day As Integer) As Date
Dim A As New System.Globalization.PersianCalendar
Return A.ToDateTime(Year, Month, Day, 0, 0, 0, 0)
End Function
Function MiladiToShamsi(ByVal Year As Integer, ByVal Month As Integer, ByVal Day As Integer) As String
Dim A As Date = Year & "/" & Month & "/" & Day
Dim B As New System.Globalization.PersianCalendar
Return B.GetYear(A) & "/" & B.GetMonth(A) & "/" & B.GetDayOfMonth(A)
End Function
همین روش، برای تاریخ های قمری هم قابل اجراست، اما مشکل اینجاست که تاریخ های قمری که مایکروسافت محاسبه می کند، بر اساس تقویم عربستان سعودی است، نه تقویم قمری ایران. برای حل این مشکل هم باید راه حلی باشد، اگر کسی پیدا کرد لطفاً بگوید.
با تشکر