aliwmhmdi
جمعه 10 خرداد 1398, 02:00 صبح
درود و خسته نباشید
دارم برنامه ای مینویسم تحت عنوان مدیریت یک هتل (به عنوان نمونه) در ویندوز فرم سی شارپ و پروسیجر ها و تیبل های اس کیو ال
تو فرم پذیرش مسافر جدید من برای قسمت شروع اقامت مسافر جدید ماسک تکست باکسی گذاشتم که فقط فرمت ####/##/## باید توش فیل بشه و در غیر این صورت به کاربر ارور میده که تاریخ رو اشتباه نوشته و درستش کنه پس یعنی ما اصلا تاریخ اشتباهی نداریم و همه تاریخ هامون کاملا صحیح توی دیتابیس ثبت میشن
برای مثال پذیرشی انجام میدیم از با شروع اقامت 1398/03/02 و اتاقی رو انتخاب میکنیم که کرایش روزی 1000 تومنه
در قسمت پذیرش شده های هتل، برای این کاربر اتمام پذیرش رو در 1398/03/09 میزنیم یعنی اون مسافر به مدت 7 روز توی هتل مونده و باید نرم افزار مبلغ 7000 تومن رو ازش بخواد....خب تا اینجای کار درسته و هیچ مشکلی نداریم یعنی تمام قسمت ها بدرستی انجام میشه
من تست کردم و دیدم برای مثال اگر تاریخ های 1398/02/31 یا 1398/02/29 یا 1398/02/30 رو وارد کنم و اتمام پذیرش رو بزنم کد برنامم ارور میده و میگه نوع تاریخ اشتباهه
-------------------------------------------------------------------------------------------
کد قسمت حساب کردن کرایه به این شکل هست:
PersianCalendar pc = new PersianCalendar();
string strDate = pc.GetYear(DateTime.Now).ToString("0000") + "/" + pc.GetMonth(DateTime.Today).ToString("00") + "/" + pc.GetDayOfMonth(DateTime.Now).ToString("00");
DateTime dt1;
DateTime dt2;
dt1 = Convert.ToDateTime(strDate);
dt2 = Convert.ToDateTime(txtBDate.Text);
int Distance = Convert.ToInt32((dt1 - dt2).TotalDays.ToString());
که بعد از این قسمت با پروسیجر و دیتابیس کار میکنم که مشکلی نداره کدها و فقط این قسمت مشکل داره و مطمئنم از همین قسمته
-----------------------------------------------------------------------------------------------------------------
که به درستی برای همه تاریخ ها کار میکنه به جز روز های 29 و 30 و 31 و خب طبیعتا در تاریخی مثل 1398/02/00 هم که باید ارور بده و طبیعیه اما دلیل ارور های روز های 29و30و31 رو نمیدونم
ممنون میشم کمکم کنید
-------------------------------------------------------------------------------------------------------------------
اروری که برای اون روز ها میده هم اینه:
{"String was not recognized as a valid DateTime."}
و این ارور رو روی این خط کد میده:
dt2 = Convert.ToDateTime(txtBDate.Text);
که تاریخ شروع اقامت مسافر هست
لطفا اگه کسی مشکل رو میدونه جواب بده
دارم برنامه ای مینویسم تحت عنوان مدیریت یک هتل (به عنوان نمونه) در ویندوز فرم سی شارپ و پروسیجر ها و تیبل های اس کیو ال
تو فرم پذیرش مسافر جدید من برای قسمت شروع اقامت مسافر جدید ماسک تکست باکسی گذاشتم که فقط فرمت ####/##/## باید توش فیل بشه و در غیر این صورت به کاربر ارور میده که تاریخ رو اشتباه نوشته و درستش کنه پس یعنی ما اصلا تاریخ اشتباهی نداریم و همه تاریخ هامون کاملا صحیح توی دیتابیس ثبت میشن
برای مثال پذیرشی انجام میدیم از با شروع اقامت 1398/03/02 و اتاقی رو انتخاب میکنیم که کرایش روزی 1000 تومنه
در قسمت پذیرش شده های هتل، برای این کاربر اتمام پذیرش رو در 1398/03/09 میزنیم یعنی اون مسافر به مدت 7 روز توی هتل مونده و باید نرم افزار مبلغ 7000 تومن رو ازش بخواد....خب تا اینجای کار درسته و هیچ مشکلی نداریم یعنی تمام قسمت ها بدرستی انجام میشه
من تست کردم و دیدم برای مثال اگر تاریخ های 1398/02/31 یا 1398/02/29 یا 1398/02/30 رو وارد کنم و اتمام پذیرش رو بزنم کد برنامم ارور میده و میگه نوع تاریخ اشتباهه
-------------------------------------------------------------------------------------------
کد قسمت حساب کردن کرایه به این شکل هست:
PersianCalendar pc = new PersianCalendar();
string strDate = pc.GetYear(DateTime.Now).ToString("0000") + "/" + pc.GetMonth(DateTime.Today).ToString("00") + "/" + pc.GetDayOfMonth(DateTime.Now).ToString("00");
DateTime dt1;
DateTime dt2;
dt1 = Convert.ToDateTime(strDate);
dt2 = Convert.ToDateTime(txtBDate.Text);
int Distance = Convert.ToInt32((dt1 - dt2).TotalDays.ToString());
که بعد از این قسمت با پروسیجر و دیتابیس کار میکنم که مشکلی نداره کدها و فقط این قسمت مشکل داره و مطمئنم از همین قسمته
-----------------------------------------------------------------------------------------------------------------
که به درستی برای همه تاریخ ها کار میکنه به جز روز های 29 و 30 و 31 و خب طبیعتا در تاریخی مثل 1398/02/00 هم که باید ارور بده و طبیعیه اما دلیل ارور های روز های 29و30و31 رو نمیدونم
ممنون میشم کمکم کنید
-------------------------------------------------------------------------------------------------------------------
اروری که برای اون روز ها میده هم اینه:
{"String was not recognized as a valid DateTime."}
و این ارور رو روی این خط کد میده:
dt2 = Convert.ToDateTime(txtBDate.Text);
که تاریخ شروع اقامت مسافر هست
لطفا اگه کسی مشکل رو میدونه جواب بده