У меня есть метод PersianDateToGregorianDate
, который я использую вместо Convert.todatetime
для вставки моей персидской даты, и у меня есть метод расширения (ToPersianDate
) для просмотра и преобразования моей даты в персидскую дату в моем gridView.Но я получаю эту ошибку:
Параметры Year, Month и Day описывают непредставляемый DateTime
, когда я ввожу datetime, например 31/2/1398, ив этом месяце у нас есть 31 день:)
Это мой PersianDateToGregorianDate
метод (работает правильно):
public static DateTime PersianDateToGregorianDate(string pDate)
{
var dateParts = pDate.Split(new[] { '/' }).Select(d => int.Parse(d)).ToArray();
var hour = 0;
var min = 0;
var seconds = 0;
return new DateTime(dateParts[2], dateParts[1], dateParts[0],
hour, min, seconds, new PersianCalendar());
}
И это мой ToPersianDate
метод расширения (я получил ошибку в этом методе):
public static DateTime ToPersianDate(this DateTime dt)
{
PersianCalendar pc = new PersianCalendar();
int year = pc.GetYear(dt);
int month = pc.GetMonth(dt);
int day = pc.GetDayOfMonth(dt);
int hour = pc.GetHour(dt);
int min = pc.GetMinute(dt);
return new DateTime(year, month, day, hour, min, 0);
}
и я меняю формат даты в DataGridView при загрузке формы:
dataGridView1.Columns[5].DefaultCellStyle.Format = "dd/MM/yyyy";
dataGridView1.Columns[4].DefaultCellStyle.Format = "dd/MM/yyyy";