سلام به همه ...
بهترین روش (بنا به گفته خود مایکروسافت) واسه ذخیره تاریخ ، به میلادی است ! چون راحت میتونید محاسبات مث جستجو ، اختلاف تاریخ و ... رو بدست بیارید
و سپس جهت نمایش باید تبدیل کنید به شمسی (با یه تابع یا کلاس)
این تابع تاریخ میلادی رو به شمسی بر میگردونه :
private static string GetPersianDate(DateTime date)
{
PersianCalendar persianCalendar = new PersianCalendar();
int year = persianCalendar.GetYear(date);
int month = persianCalendar.GetMonth(date);
int day = persianCalendar.GetDayOfMonth(date);
return string.Format("{0:0000}/{1:00}/{2:00}", year, month, day);
}
و برای نمایش تاریخ شمسی توی دیتاگریدویو از این cellformating تاریخ رو تبدیل میکنید :
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (e.ColumnIndex == 8)
{
object value = e.Value;
if (value is DateTime)
{
e.Value = GetPersianDate((DateTime)e.Value);
e.FormattingApplied = true;
}
}
}
تو اینجا ستون 8 فیلد تاریخ رو نمایش میده (که به شمسی تبدیل شده)
و برای جستجو بین دو تاریخ کافی دو تا تاریخ رو وارد کنید و (بصورت پارامتر) به کوئری پاس بدین :)
یا علی !
این کامپوننت هم خیلی خوبه : DateTimeSelector.dll