PDA

View Full Version : راهنمایی درمورد تبدیل تاریخ ها



yones.kz
چهارشنبه 24 خرداد 1391, 20:24 عصر
سلام به همه دوستان
1) من یک صفحه وب طراحی کردم که میخوام هنگام لود شدن یکسری اطلاعات که یک فیلد تاریخ به میلادی است را از بانک دریافت کنه و در گرید ویوو نمایش بده..
از دوستانی که میتونن کمکم کنن میخوام بهم بگن چطور تاریخ میلادی رو هنگام لود شدن صفحه در گرید ویوو تبدیل به تاریخ فارسی کنم...
2) یک درخواست دیگه هم داشتم اینکه من میخام یکسری از سطرهای این گرید رو با چکت باکس انتخاب کنم و در یک گرید دیگه بصورت پیش نمایش نشان بدم و در یک جدول دیگه ذخیره کنم.......
آیا این کارم درسته یا راه حل دیگه ای هست و من بی خبرم:لبخند::لبخند:
ممنون از راهنمایی هاتون:لبخندساده::لبخندساده:

fakhravari
چهارشنبه 24 خرداد 1391, 21:27 عصر
هر تیکه از سوالات یک پست میخوا
و کار سختی نیست و نمونه هاش زیاده . سرچ

yones.kz
پنج شنبه 25 خرداد 1391, 10:50 صبح
ممنون از راهنمایی که کردین یادم نبود توی اینترنت هم میشه سرچ کرد:تشویق::تشویق:

mehrzad_ali
پنج شنبه 25 خرداد 1391, 11:48 صبح
برای سوال اولتون شما باید یه تابع بنویسی که تاریخ میلادی رو به هجری تبدیل کنه


public string GregToHijri(string greg, string format)
{

if (greg.Length <= 0)
{
return "";
}
try
{
DateTime tempDate = DateTime.ParseExact(greg, allFormats,
enCul.DateTimeFormat, DateTimeStyles.AllowWhiteSpaces);
return tempDate.ToString(format, faCul.DateTimeFormat);

}
catch
{
return "";
}
}

بعد باید مقدار ستون تاریخ دیتاتیبل رو به هجری تبدیل کنی و جایگزین ستون میلادی کنی . از این کد استفاده کن




public datatable convert( datatable date)
{

date.Columns.Add("HigriDate");

foreach (DataRow dr in date)
{
string ddd = Convert.ToDateTime(dr["ReciveDate"]).ToString("yyyy/MM/dd");
dr["HigriDate"] = GregToHijri(ddd, "yyyy/MM/dd") + " " + Convert.ToDateTime(dr["ReciveDate"]).Hour + ":" + Convert.ToDateTime(dr["ReciveDate"]).Minute;
date.AcceptChanges();
}
return date;
}

mehrzad_ali
پنج شنبه 25 خرداد 1391, 12:06 عصر
تابع دوم رو اصلاح کردم

hamid_kha
پنج شنبه 25 خرداد 1391, 13:52 عصر
آیا میخواید تمام تاریخهایی که تو سایتتون هست رو به فارسی نشون بدید؟

yones.kz
پنج شنبه 25 خرداد 1391, 20:56 عصر
سلام mehrzad_ali
شمادر تابع تبدیل تاریخ از allformat , facul , encul استفاده کردین اینها کلاسهای هستن که شما در برنامتون ازش استفاده کردین یا جزو توابع خود سی شارپ اند؟ آخه برا من از اینها خطا میگیره.
بدشم میخواستم بپرسم چرا درون foreach که از datarow استفاده کردم خطا میگره که foreach نمیتونه از datarow استفاده کنه.
بازم ممنون

imanasp
پنج شنبه 25 خرداد 1391, 21:44 عصر
اول این فضای نام رو اضافه کن:
using System.Globalization;

توی Code این متد رو بنویس:
public string Shamsi(object strDate)
{
string str;
PersianCalendar hejri = new PersianCalendar();
DateTime dt = Convert.ToDateTime(strDate);
str = hejri.GetYear(dt).ToString() + "/" + hejri.GetMonth(dt).ToString() + "/" + hejri.GetDayOfMonth(dt).ToString();
return str;
}
و از این لیبل هم برای نمایش استفاده کن:

<asp:Label ID="lblStartDate" runat="server" Text='<%# Shamsi(Eval("StartDate")) %>'></asp:Label>

mehrzad_ali
پنج شنبه 25 خرداد 1391, 22:12 عصر
سلام mehrzad_ali
شمادر تابع تبدیل تاریخ از allformat , facul , encul استفاده کردین اینها کلاسهای هستن که شما در برنامتون ازش استفاده کردین یا جزو توابع خود سی شارپ اند؟ آخه برا من از اینها خطا میگیره.
بدشم میخواستم بپرسم چرا درون foreach که از datarow استفاده کردم خطا میگره که foreach نمیتونه از datarow استفاده کنه.
بازم ممنون

سلام بله کلاس رو یادم رفت براتون بزارم اینو کپی کنید توی پروژتون