یک راه حل ساده برای استفاده از تاریخ شمسی در دات نت 3.5 به بالا
یک راه حل ساده برای استفاده از تاریخ شمسی در دات نت 3.5 به بالا :
کلاس زیر را به پروژه اضافه کنید :
using System;
using System.Globalization;
public static class ShamsiDate
{
static PersianCalendar persianCalendar = new PersianCalendar();
public static string ToShamsi(this DateTime miladiDate)
{
string year = persianCalendar.GetYear(miladiDate).ToString();
string month = persianCalendar.GetMonth(miladiDate).ToString().Pa dLeft(2, '0');
string day = persianCalendar.GetDayOfMonth(miladiDate).ToString ().PadLeft(2, '0');
return year + "/" + month + "/" + day;
}
public static DateTime ToMiladi(this string shamsiDate)
{
int year = int.Parse(shamsiDate.Substring(0, 4));
int month = int.Parse(shamsiDate.Substring(5, 2));
int day = int.Parse(shamsiDate.Substring(8, 2));
return persianCalendar.ToDateTime(year, month, day, 0, 0, 0, 0);
}
}
بعد هر جا خواستید استفاده کنید. مثل این :
string shamsiToday = DateTime.Now.ToShamsi();
DateTime miladiDate = "1389/10/11".ToMiladi();