PDA

View Full Version : پایان مشکل تاریخ شمسی



Mahdavi
سه شنبه 18 مرداد 1384, 23:11 عصر
با سلام
مدتی هست که می بینم بحثهای زیادی در مورد تغییر تاریخ میلادی سه شمسی مطرح شده و راه حل های گوناگون.
همه این راه ها یه مشکل دارند و اون اینکه اگه در پروژه قسمتهای مختلفی داشته باشید که از تاریخ استفاده می کنند شما برای تبدیل همه اونا باید کد بنویسید. و دیده شده که بعضی ها کنترلهایی هم واسه تاریخ نوشته و می فروشند. در صورتیکه با یه تغییر کوچک در Pcal.cs که آقای امید خندان زحمت اونو کشیدند و اضافه کردن چند خط کد ساده تمام تاریخ هاتون شمسی نمایش داده میشه و شما به شکل میلادی ذخیره خواهید کرد. از خوبی های این روش اینه که دیگه نیازی نیست تاریخ رو به شکل رشته ای ذخیره کنید . بلکه چون میلادی ذخیره میشه شما خیلی راحت می تونید با اونا کار کنید.
من کد Pcal.cs رو ضمیمه می کنم که شما باید به پروژه مورد نظرتون اضافه کنید و همچنین چند خط کد زیر رو به InitializeComponent مربوط به Global.asax قرار دهید تا کل تاریخ های سیستم شما شمسی شوند و
حتی کنترل Calender خود ‍C#.
دیگه فکر کنم کسی در مورد تاریخ تاپیکی اینجا نذاره.(انشاالله):)
کد یه برنامه نمونه هم ضمیه شده است.


private void InitializeComponent()
{
System.Globalization.CultureInfo cf = new System.Globalization.CultureInfo("fa-IR");
cf.DateTimeFormat.Calendar =new System.Globalization.PersianCalendar();
cf.DateTimeFormat.MonthNames = new string[]{
"فروردین",
"اردیبهشت",
"خرداد",
"تیر",
"مرداد",
"شهریور",
"مهر",
"آبان",
"آذر",
"دی",
"بهمن" ,
"اسفند",
""};
System.Threading.Thread.CurrentThread.CurrentCultu re = cf;
this.components = new System.ComponentModel.Container();
}

Babak-Aghili
سه شنبه 18 مرداد 1384, 23:29 عصر
دست گلتون درد نکنه ..

ممنون .

Peyman_Ranjbar
چهارشنبه 19 مرداد 1384, 04:53 صبح
برای winapp این کد رو میشه استفاده کرد؟

Mahdavi
چهارشنبه 19 مرداد 1384, 08:18 صبح
بله
در winapp هم میشه . فقط با این تفاوت که کد مربوطه رو در Form1_Load فرم اصلی تون قرار بدید.
دوم اینکه بر روی کنترلهاش در حالت اصلی تاثیری نداره و مثل وب نیست.