PDA

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



hamid1988
چهارشنبه 07 مرداد 1388, 15:35 عصر
با سلام.....
من تاریخ را بصورت میلادی در دیتابیس اکسس ذخیره می کنم و می خوام موقع نمایش تاریخ در دیتاگرید ویو ابتدا آن را به شمسی تبدیل کنم بعد نمایش بدم، کلاس تبدیل تاریخ رو هم دارم...
سوالی که دارم اینه که چطوری قبل از پر شدن دیتا گرید ویو تاریخ رو تبدیل کنم بعد پرش کنم؟
با تشکر

Unknownlive
چهارشنبه 07 مرداد 1388, 18:02 عصر
شما می تونید از کلاس های Culture Info استفاده کنید یا از فایل ها DLL موجود در اینترنت مثل Persia Date Or Persian Date بعد اطلاعات را در یک Data Reader بریزید و در حلقه تبدیل کنید بعد به کمک Data Adapter در یک Data Set Or Data Table باید Fill کنید و به Data Grid View بدهید

kitaro
پنج شنبه 08 مرداد 1388, 18:05 عصر
اگه به فیلد تاریخ میلادی نیاز داری به نظر من یه فیلد تاریخ شمسی به جدول پایگاه داده کنار فیلد میلادی اضافه کن و موقع Insert کردن توی دیتابیس هم مقدار میلادی و هم شمسی رو بریز.

برای تبدیل میلادی به شمسی هم می تونی از کلاس استاندارد خود Net. استفاده کنی:




Using System.Globalization;

.
.
.

public string ConvertToPersianDate(DateTime dt)
{
PersianCalendar PersianCalendar = new PersianCalendar();

string xDate = PersianCalendar.GetYear(dt).ToString("D4") + "/";

xDate += PersianCalendar.GetMonth(dt).ToString("D2") + "/";

xDate += PersianCalendar.GetDayOfMonth(dt).ToString("D2");

return xDate;
}


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

afsharm
شنبه 10 مرداد 1388, 12:33 عصر
ما در GridView تحت وب از یک راه خیلی ساده و قابل فهم استفاده می‌کنیم. در این راه حل، اطلاعات به همان صورت میلادی ذخیره می‌شود ولی موقع bind شدن بدون هیچ عملیات اضافی از طرف ما به تاریخ شمسی تبدیل می‌شود. امیدوارم بتوانی راه معادل WinForm آن را هم با کمک این روش پیدا کنی. به عنوان یک نقطه شروع شاید بتوانی از Eventها مرتبط استفاده کنی:


<asp:Label ID="lblDateLabel" SkinID="OneColLabel" runat="server" Text='<%# (Convert.ToDateTime(Eval("Date")) >= XYZ.ApplicationFramework.Common.DateTimeHelper.Max Value || Convert.ToDateTime(Eval("Date")) <= XYZ.ApplicationFramework.Common.DateTimeHelper.Min Value) ? String.Empty : XYZ.ApplicationFramework.Common.DateTimeHelper.Con vertMiladyToHejri(Eval("Date").ToString()) %>' />

تگ asp:label در ASP.NET برای معرف یک label به کار می‌رود. خود این label داخل یک asp:GridView قرار دارد. کلاس مورد استفاده برای تبدیل تاریخ هم در XYZ.ApplicationFramework.Common.DateTimeHelper.Con vertMiladyToHejri قرار دارد