سايتهايي هستند روي اينترنت
و نرمافزارهايي قابل دانلود
رايگان
اينكه يك تاريخ را تبديل نمايد
بين سه نوع تاريخي كه ما معمولاً با آنها درگير هستيم
شمسي و قمري و ميلادي
با اضافه شدن كلاس PersianCalendar در داتنت نيز
تبديل تاريخ آسان گشته
اما هنوز هم
روي اينترنت نديدم ابزاري باشد
مناسب براي تبديل گروهي از تاريخها
به صورت دستهاي
اينكه حجمي بدهي و حجمي بگيري
كاري كه زياد پيش ميآيد
وقتي در حال تبديل وهلهاي و يكباره اطلاعات هستيم
چنين ابزاري نوشتم
در اين نشاني
http://pdmcenter.ir/convert
(هاست تمام شد و دلار هم گران، نشد ديگر تمديد كنم و فعلاً روي هواست!)
ابتدا براي خود البته
كاري داشتم و نياز بود
اما
بعدش گفتم عمومي باشد تا به كار ديگران نيز شايد بيايد
خوبياش:
يكهو كلّي تاريخ را يكباره تبديل ميكند
ميان همين سه نوع تاريخ معهود
محصول را اگر بچسباني در اكسل
به سادگي در دو ستون قرار ميگيرد
ستون مبدأ و ستون مقصد!
از همين Namespace معروف داتنت هم استفاده كردم
يعني System.Globalization
كدها را هم ميگذارم اينجا
به زبان VB است
شايد كسي نداند و بخواهد در كدنويسي خود به كار بندد
براي تبديل ميلادي به شمسي:
Function M2SH(str As String) As String
"2017/2/8 => 1395/11/19
Dim f As System.Globalization.PersianCalendar = New System.Globalization.PersianCalendar
M2SH = f.GetYear(str) & "/" & f.GetMonth(str) & "/" & f.GetDayOfMonth(str)
End Function
و براي ميلادي به قمري:
Function M2GH(str As String) As String
"2017/2/8 => 1438/5/12
Dim h As System.Globalization.HijriCalendar = New System.Globalization.HijriCalendar
M2GH = h.GetYear(str) & "/" & h.GetMonth(str) & "/" & h.GetDayOfMonth(str)
End Function
شمسي به ميلادي:
Function SH2M(str As String) As String
"1395/11/19 => 2017/2/8
Dim f As System.Globalization.PersianCalendar = New System.Globalization.PersianCalendar
Dim yyyy As Integer = DatePart("yyyy", str)
Dim mm As Integer = DatePart("m", str)
Dim dd As Integer = DatePart("d", str)
Dim d As DateTime = f.ToDateTime(yyyy, mm, dd, 0, 0, 0, 0)
SH2M = d.ToShortDateString()
End Function
شمسي به قمري:
Function SH2GH(str As String) As String
"1395/11/19 => 1438/5/12
Dim f As System.Globalization.PersianCalendar = New System.Globalization.PersianCalendar
Dim h As System.Globalization.HijriCalendar = New System.Globalization.HijriCalendar
Dim yyyy As Integer = DatePart("yyyy", str)
Dim mm As Integer = DatePart("m", str)
Dim dd As Integer = DatePart("d", str)
Dim d As DateTime = f.ToDateTime(yyyy, mm, dd, 0, 0, 0, 0)
Dim mi As DateTime = d.ToShortDateString()
SH2GH = h.GetYear(mi) & "/" & h.GetMonth(mi) & "/" & h.GetDayOfMonth(mi)
End Function
قمري به ميلادي:
Function GH2M(str As String) As String
"1438/5/12 => 2017/2/8
Dim h As System.Globalization.HijriCalendar = New System.Globalization.HijriCalendar
Dim yyyy As Integer = DatePart("yyyy", str)
Dim mm As Integer = DatePart("m", str)
Dim dd As Integer = DatePart("d", str)
Dim d As DateTime = h.ToDateTime(yyyy, mm, dd, 0, 0, 0, 0)
GH2M = d.ToShortDateString()
End Function
و در نهايت هم قمري به شمسي:
Function GH2SH(str As String) As String
"1438/5/12 => 1395/11/19
Dim f As System.Globalization.PersianCalendar = New System.Globalization.PersianCalendar
Dim h As System.Globalization.HijriCalendar = New System.Globalization.HijriCalendar
Dim yyyy As Integer = DatePart("yyyy", str)
Dim mm As Integer = DatePart("m", str)
Dim dd As Integer = DatePart("d", str)
Dim d As DateTime = h.ToDateTime(yyyy, mm, dd, 0, 0, 0, 0)
Dim mi As DateTime = d.ToShortDateString()
GH2SH = f.GetYear(mi) & "/" & f.GetMonth(mi) & "/" & f.GetDayOfMonth(mi)
End Function
اميد كه به كار ديگران نيز آيد.