PDA

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



Arashdn
چهارشنبه 08 شهریور 1391, 18:02 عصر
سلام
همونطور که میدونید ما یه کنترل داریم به نام Date time picker
چیزی بسیار به درد بخوری هست
اما یه سوال
راهی هست که بتونیم در این کنترل به کاربر تقویم شمسی نشون بدیم و بعد مقدارشو بصورت میلادی به برنامه برگردونیم؟
خیلی سرچ کردم ولی چیزی گیرم نیومد ....
ممنون

Arashdn
شنبه 11 شهریور 1391, 10:38 صبح
هیچ کس ایده ای نداره؟
اگه با Datetimepicker هم نشه
ساده ترین و مطمعن ترین روش بره گرفتن تاریخ شمسی از کاربر چیه؟
ممنون

Parham.D
یک شنبه 12 شهریور 1391, 08:25 صبح
این مسئله بارها تکرار شده. کنترلهای تاریخ دات نت به طور پیشفرض قابلیت نمایش تاریخ به صورت شمسی ندارند. شما یا باید یک نمونه برای خودتان ایجاد کنید یا از کامپوننت هایی که ساخته شده اند استفاده کنید. Farsi Library را جستجو کنید.

Arashdn
یک شنبه 12 شهریور 1391, 09:36 صبح
من خیلی حرفه ای نیستم
اصلا چطور باید از یه کامپوننت استفاده کرد؟
یه کامپوننت خوب معرفی میکنید؟
ممنون

مسعود اقدسی فام
یک شنبه 12 شهریور 1391, 10:22 صبح
من خیلی حرفه ای نیستم
اصلا چطور باید از یه کامپوننت استفاده کرد؟
یه کامپوننت خوب معرفی میکنید؟
ممنون
یکیش کنترل faDatePicker. البته یه جاهاییش یه سری نقص داشت قدیما. نمی‌دونم نسخه‌ی جدیدی داره یا نه؟

ehsan7007
یک شنبه 12 شهریور 1391, 10:24 صبح
DatetimePiker شمسی (http://barnamenevis.org/showthread.php?356313-DatetimePiker-%D8%B4%D9%85%D8%B3%DB%8C&highlight=%D8%B4%D9%85%D8%B3%DB%8C)

Arashdn
یک شنبه 12 شهریور 1391, 13:52 عصر
DatetimePiker شمسی (http://barnamenevis.org/showthread.php?356313-DatetimePiker-%D8%B4%D9%85%D8%B3%DB%8C&highlight=%D8%B4%D9%85%D8%B3%DB%8C)
ممنون از شما
چطور میتونم ازش استفاده کنم؟(یعنی dll رو چطور میشه وارد ویژوال استدیو کرد؟)

مسعود اقدسی فام
یک شنبه 12 شهریور 1391, 14:16 عصر
ممنون از شما
چطور میتونم ازش استفاده کنم؟(یعنی dll رو چطور میشه وارد ویژوال استدیو کرد؟)

قسمت toolbox بخش General راست کلیک کن و Choose Items رو بزن. اونجا Browse کن و dll رو انتخاب کن و اوکی. به لیست toolbox اضافه می‌شه کمپوننت.

Arashdn
یک شنبه 12 شهریور 1391, 14:28 عصر
قسمت toolbox بخش General راست کلیک کن و Choose Items رو بزن. اونجا Browse کن و dll رو انتخاب کن و اوکی. به لیست toolbox اضافه می‌شه کمپوننت.
ممنون
یه توضیحی هم میدید چطور میشه از این در آیتم از نوع تاریخ خروجی رو به میلادی گرفت؟

مسعود اقدسی فام
یک شنبه 12 شهریور 1391, 15:06 عصر
بستگی داره چه کمپوننتی استفاده می‌کنید. از خصوصیتها دنبال کلماتی مثل SelectedDateTime یا Value بگردید. اصولا با این خصوصیت هم می شه تاریخ میلادی براش ست کرد و هم گرفت. ولی اون همه رو شمسی در ظاهر نشون می‌ده.

Arashdn
یک شنبه 12 شهریور 1391, 17:17 عصر
تنها چیزی پیدا کردم datevalue هست که مقدار استرینگ بر میگردنه
هر چی گشتم چیزی پیدا نکردم که مقدار از نوع DateTime برگردونه
نظری دارید؟

مسعود اقدسی فام
یک شنبه 12 شهریور 1391, 21:48 عصر
تنها چیزی پیدا کردم datevalue هست که مقدار استرینگ بر میگردنه
هر چی گشتم چیزی پیدا نکردم که مقدار از نوع DateTime برگردونه
نظری دارید؟

اگه استرینگی که می‌ده فرمت درست تاریخ داشته باشه می‌شه به DateTime تبدیلش کرد.

Arashdn
دوشنبه 13 شهریور 1391, 09:08 صبح
مقدار رو بصورت
1391/6/13
بر میگردونه
من میلادی لازم دارم و از نوع Datetime ؟
خودتون این dll رو یه تستی میکنید؟
dll دیگه ای هم هست؟

Arashdn
سه شنبه 14 شهریور 1391, 12:39 عصر
همچنان منتظر ایده های شما دوستان عزیز هستیم ....

مسعود اقدسی فام
سه شنبه 14 شهریور 1391, 14:25 عصر
مقدار رو بصورت
1391/6/13
بر میگردونه
من میلادی لازم دارم و از نوع Datetime ؟
خودتون این dll رو یه تستی میکنید؟
dll دیگه ای هم هست؟

من با faDatePicker کار کردم.

مشکلی نیست. این رشته رو بر اساس "/" اسپلیت کنید و به عدد تبدیل کنید و با کلاس PersianCalendar خود دات به تاریخ میلادی تبدیلش کنید. املای اسم کلاس مطمئن نیستم این باشه.

Arashdn
سه شنبه 14 شهریور 1391, 14:32 عصر
faDatePicker
از کجا میشه پیداش کرد؟



مشکلی نیست. این رشته رو بر اساس "/" اسپلیت کنید و به عدد تبدیل کنید و با کلاس PersianCalendar خود دات به تاریخ میلادی تبدیلش کنید. املای اسم کلاس مطمئن نیستم این باشه.
چطور باید اسپلیت کنم؟
و از کدوم متد کلاس پرشین کلندر برای تبدیل استفاده میشه و اینکه اعداد تبدیل شده رو چطور در یه متغیر از نوع Datetime بریزم؟

ممنون

مسعود اقدسی فام
سه شنبه 14 شهریور 1391, 15:06 عصر
از کجا میشه پیداش کرد؟



چطور باید اسپلیت کنم؟
و از کدوم متد کلاس پرشین کلندر برای تبدیل استفاده میشه و اینکه اعداد تبدیل شده رو چطور در یه متغیر از نوع Datetime بریزم؟

ممنون

و خداوند گوگل را آفرید. :چشمک:

کلاس System.Globalization.PersianCalendar یه متد ToDateDate داره.

برای اسپلیت هم:




string[] s;

s = t.Split("/");





که t همون تاریخ فارسیه و s ارایه ای می شه از قسمتای جدا شده.

Arashdn
جمعه 17 شهریور 1391, 00:24 صبح
و خداوند گوگل را آفرید. :چشمک:

کلاس System.Globalization.PersianCalendar یه متد ToDateDate داره.

برای اسپلیت هم:




string[] s;

s = t.Split("/");





که t همون تاریخ فارسیه و s ارایه ای می شه از قسمتای جدا شده.


هر چی تلاش کردم نتونستم این آرایه رو به تاریخ تبدیل کنم
ممکنه یه کم بیشتر راهنمایی کنید؟

zinat1356
جمعه 17 شهریور 1391, 01:21 صبح
سلام آقای مسعود اقدسی فام
من یه سوال در مورد کامپوننتی که شما معرفی کردین دارم . من تونستم به کمک datevalue به صورت default این تقویم را وقتی که برنامه لود میشه برای اولین بار null کنم
فرض کنید یه برنامه هست که تاریخ در اون می تونه null باشه کاربر اشتباهی تاریخ وارد می کنه ولی بعد متوجه میشه که تاریخ باید خالی می ذاشته با این کامپو ننت dateTimePicker فارسی که شما معرفی کردین چطوری کاربر می تونه تاریخ را دستی پاک کنه ؟؟ چه کدی باید به برنامه اضافه کنم .

ممنون

Arashdn
جمعه 17 شهریور 1391, 11:51 صبح
بالاخره تونستم یه متد بنویسم که تاریخ خروجی از این Datetimepicker رو به تاریخ میلادی و از نوع DateTime تبدیل کنه
اینجا میزارم اگر به درد کسی خورد استفاده کنه
public DateTime pcal(String t)
{
try
{

System.Globalization.PersianCalendar pc = new System.Globalization.PersianCalendar();
string[] s;
s = t.Split('/');
return (pc.ToDateTime(Int32.Parse(s[0]), Int32.Parse(s[1]), Int32.Parse(s[2]), 7, 0, 0, 0));
}
catch
{
MessageBox.Show("خطا در تاریخ ورودی ، از تاریخ فعلی سیستم استفاده شد");
return System.DateTime.Now;
}
}