PDA

View Full Version : سوال: نمایش تاریخ شمسی در کنترل DropDownList



majid.mp
چهارشنبه 15 آذر 1391, 23:44 عصر
با عرض سلام خدمت دوستان
دوستان لطفاً راهنمایی بفرمایید در کنترل DropDownList ی که به بانک متصل میباشد چگونه میتوانم تاریخ میلادی را به شمسی نمایش دهم؟
با تشکر

malloc
چهارشنبه 15 آذر 1391, 23:50 عصر
این تابع رو دکتر عزیزی (استاد دانشگاه رجا قزوین) به من داد . فکر کنم کارتو را بندازه

public string toJalaliDate(DateTime n)
{
PersianCalendar pc = new PersianCalendar();
string y = pc.GetYear(n).ToString();
string d = (pc.GetDayOfMonth(n) > 9 ? pc.GetDayOfMonth(n).ToString() : "0" + pc.GetDayOfMonth(n).ToString());
string m = (pc.GetMonth(n) > 9 ? pc.GetMonth(n).ToString() : "0" + pc.GetMonth(n).ToString());
return (y + "/" + m + "/" + d);
}

majid.mp
چهارشنبه 15 آذر 1391, 23:59 عصر
با تشکر از پاسخ شما
تابعی که شما معرفی کرده اید یک کلاس نیاز دارد در این کد یک شی با عنوان pc از کلاس PersianCalendar ایجاد شده لطفاً در صورت امکان کلاس را هم قرار دهید؟

malloc
پنج شنبه 16 آذر 1391, 00:13 صبح
using System.Globalization;

majid.mp
پنج شنبه 16 آذر 1391, 08:12 صبح
با تشکر از پاسخ شما
تابع شما درست عمل میکنه ولی من چگونه میتوانم از آن در کنترل DropDownList ی که به جدولم بایند میباشد استفاده نمایم؟
ddl_Days.DataTextField = toJalaliDate(Convert.ToDateTime("dt_TodayDate"));
بنده به صورت بالا کد نوشتم ولی فیلد dt_TodayDate را به عنوان رشته میشناسد!
با تشکر

fakhravari
پنج شنبه 16 آذر 1391, 11:27 صبح
ابتدا باید به DropDownList ایتم ها را اد کنید به روش پایین.
DropDownList1.Items.Add(new ListItem(myReader[TextField].ToString(), myReader[ValueField].ToString()));
روش تبدیل تاریخ هم
public static string ToShamsi(DateTime miladiDate)
{
PersianCalendar persianCalendar = new PersianCalendar();
string year = persianCalendar.GetYear(miladiDate).ToString("0000");
string month = persianCalendar.GetMonth(miladiDate).ToString("00");
string day = persianCalendar.GetDayOfMonth(miladiDate).ToString ("00");
string Hour = persianCalendar.GetHour(miladiDate).ToString("00");
string Second = persianCalendar.GetSecond(miladiDate).ToString("00");
string Minute = persianCalendar.GetMinute(miladiDate).ToString("00");
string Millisecond = persianCalendar.GetMilliseconds(miladiDate).ToStri ng("00");

return year + "/" + month + "/" + day + " " + Hour + ":" + Minute + ":" + Second + ":" + Millisecond;
}

malloc
پنج شنبه 16 آذر 1391, 12:56 عصر
با تشکر از پاسخ شما
تابع شما درست عمل میکنه ولی من چگونه میتوانم از آن در کنترل DropDownList ی که به جدولم بایند میباشد استفاده نمایم؟
ddl_Days.DataTextField = toJalaliDate(Convert.ToDateTime("dt_TodayDate"));
بنده به صورت بالا کد نوشتم ولی فیلد dt_TodayDate را به عنوان رشته میشناسد!
با تشکر

فکر میکنم جوابی که دوستمون آقای فخراوری دادن دیگه کامل و مشکلتون کاملا برطرف شده درسته؟؟

majid.mp
پنج شنبه 16 آذر 1391, 23:26 عصر
فکر میکنم جوابی که دوستمون آقای فخراوری دادن دیگه کامل و مشکلتون کاملا برطرف شده درسته؟؟
بله مشکل حل شد ، از وقتی که برای پاسخ به سوال بنده گذاشتید سپاسگزارم.