PDA

View Full Version : نوع داده DateTime و تقویم فارسی



mahdi_negahi
شنبه 03 شهریور 1386, 08:06 صبح
سلام دوستان من میخوام یک تاریخ فارسی مثلا 1386/06/31 را در یک نوع داده DateTime ذخیره کنم
اما این عمل انجام نمی شود (لطفا امتحان کنید)
آیا راهی هست ؟

ClaimAlireza
شنبه 03 شهریور 1386, 10:18 صبح
دوست عزیز قبلا توی یه تاپیک جناب راد دلیلش رو گفته بودن.الان پیداش نکردم.

دلیلش اینه که datetime برای تاریخ میلادی طراحی شده و حداقل مقدارش 1800 یا 1900 پس تاریخ 1386 رو خطا میده.

شما باید تاریخ رو به میلادی ذخیره کنید هنگام بازیابی اون رو شمسی کنین.

موفق باشید....

na3er-faraji
شنبه 03 شهریور 1386, 20:46 عصر
بله، من هم این مشکل را داشتم . یک راه دیگه استفاده از نوع string است. البته بستگی به کارتون داره که از کدوم روش استفاده کنید

mahdi_negahi
شنبه 03 شهریور 1386, 21:17 عصر
string اولین راه و فکر کنم تنهاترین راه

mohammad272005
یک شنبه 04 شهریور 1386, 00:03 صبح
یه نگاهی به این (http://www.codeproject.com/useritems/PersianDateTime.asp)بندازین. کاره خودمه

javad3151
یک شنبه 04 شهریور 1386, 08:00 صبح
اگر تاریخ رو String ذخیره کنی ، مشکلات خاص خودش رو داره مثلا اگر بخوای اختلاف بین دو تاریخ رو محاسبه کنی تقریبا هیچ راهی نداری! و...
بهترین راه اینه که تاریخ رو میلادی ذخیره کنی و شمسی نشون بدی، خیلی راحته فقط کافیه یه تابع بنویسی(شمسی <> میلادی) و هرجا که خواستی تاریخ رو نشون بدی، با استفاده از این تابع نشونش بدی

mahdi_negahi
یک شنبه 04 شهریور 1386, 08:24 صبح
اگر تاریخ رو String ذخیره کنی ، مشکلات خاص خودش رو داره مثلا اگر بخوای اختلاف بین دو تاریخ رو محاسبه کنی تقریبا هیچ راهی نداری! و...
بهترین راه اینه که تاریخ رو میلادی ذخیره کنی و شمسی نشون بدی، خیلی راحته فقط کافیه یه تابع بنویسی(شمسی <> میلادی) و هرجا که خواستی تاریخ رو نشون بدی، با استفاده از این تابع نشونش بدی

بله منم این کارو کردم ولی دلیل اینکه من این کارو میخوام انجام بدم به این خاطر است که من در BLL میخوام تمام تاریخ ها رو تبدیل کنم و چون ستون من هم DateTime است باید تاریخ شمسی به فرم DateTime تیدیل کنم و آن را را به جای میلادی بذارم ولی این مشکل را دارد و برای حل این کار یک ستون string به DAL اضافه کردم

سار
یک شنبه 04 شهریور 1386, 08:36 صبح
یه نگاهی به این (http://www.codeproject.com/useritems/PersianDateTime.asp)بندازین. کاره خودمه

کار قشنگیه.
در واقع شبیه سازی کلاس DateTime خود Net. رو انجام دادی. ولی باز برای ذخیره سازی مشکل داری مگر اینکه در SQL Server یک نوع داده سازگار با این کلاس تعریف بشه که من واقعن نمیدونم چقدر امکان پذیره + تعدادی تابع در SQL Server که بتون کارهای محاسباتی روی اون انجام بده. در این ضمینه هم کاری کرد؟
خودت چطوری این نوع رو ذخیره کردی تو SQL Server. اگر بخش محاسباتی رو بیخیال بشیم میتونیم تو فیلدی از نوع sql_variant ذخیرش کنی و بعد همه محاسبات رو در همین کلاس پیاده سازی کنی که البته در مورد جمع و تفریق اینکار رو کردی.
:تشویق:

hamed_bostan
یک شنبه 04 شهریور 1386, 20:45 عصر
http://barnamenevis.org/forum/showthread.php?t=72611