PDA

View Full Version : سوال: اشکال در تبدیل تاریخ فارسی با نوع رشته به نوع تاریخ



yayan85
یک شنبه 30 فروردین 1394, 21:49 عصر
سلام
با persia dll تاریخ میلادی رو به شمسی تبدیل می کنم و 30 روز به اون اضافه می کنم و در فیلدی با فرمت رشته ذخیره می کنم. بعد که تاریخ ذخیره شده رو از دیتابیس می گیرم و می خواهم با تاریخ همون لحظه که اون هم تیدیل به شمسی شده مقایسه کنم ، موقع تبدیل به نوع تاریخ خطای زیر رو می گیره.
String was not recognized as a valid DateTime.

توی سایت های خارجی جستجو کردم پیشنهاد داده بودند برای این خطا از DateTime.ParseExact استفاده بشه ، ولی فرمتش با نوع فارسی شده من جور در نماید.
کد موقع تبدیل تاریخ سیستم به شمسی:
DateTime nowDate = Convert.ToDateTime(Persia.Calendar.ConvertToPersia n(DateTime.Now).ToString());

کدی که بعد از بازیابی باید دوباره به تبدیل به نوع تاریخ بشه برای مقایسه دو تاریخ:
DateTime engheza = Convert.ToDateTime(query.enghezaDate.ToString());

نمونه تاریخ شمسی که ذخیره میشه در دیتابیس: 1394/02/29
نکته اینکه بعضی تاریخ های ثبت شده رو ایراد نمی گیره. من هم تا وقتی روی لوکال تست می کردم به مشکل بر نخوردم. تا آپلود کردم و کاربر ها ثبت نام کردند ، به مشکل بر خورد. آبروم در خطره ، لطفا راهنما
یا دو تا تاریخ شمسی شده رو چطور مقایسه کنم. می خوام که اگه تاریخ انقضا گذشت اکانت کاربر بسته بشه

yayan85
دوشنبه 31 فروردین 1394, 01:10 صبح
خودم جواب رو پبدا کردم. با این کد تبدیل کردم به تاریخ میلادی و به صورت میلادی مقایسه کردم
PersianCalendar p = new PersianCalendar();
string PersianDate1 = query.enghezaDate;
string[] parts = PersianDate1.Split('/', '-');
DateTime tarikhEngheza = p.ToDateTime(Convert.ToInt32(parts[0]), Convert.ToInt32(parts[1]), Convert.ToInt32(parts[2]), 0, 0, 0, 0);