PDA

View Full Version : سوال: تایید اعتبار یک تاریخ در تقویم



ya30ien2
پنج شنبه 29 فروردین 1392, 23:14 عصر
سلام به همگی
دوستان من میخوام که در برنامه ام از کاربر یک تاریخ(مثال "1390-12-31") رو دریافت کنم
حالا قبل از هر چیزی میخوام که تاریخ رو چک کنم و ببینم که چنین تاریخی صحیح هست یا نه
همگی میدونید که در اسفند ماه 31 روز وجود نداره چطوری باید تست کنم؟

erfan_urchin
پنج شنبه 29 فروردین 1392, 23:48 عصر
سلام
به نظر من بهتره که تاریخ رو با سه تا کمبو باکس از کاربر بگیری و بعد چک کنی که تاریخ درسته یا نه
یعنی یه کمبوباکس بزاری برای روز یه دونه برا ماه و یه دونه برا سال وبعد یه برنامه ای مثل این برنامه ای که برات میزارم بنویسی
موفق باشی

ya30ien2
جمعه 30 فروردین 1392, 00:21 صبح
دوست عزیز راه حل شما بدرد نمیخوره
مثلا سال 91 اسفند 30 روز بوده اما امسال 29 روز هستش پس من نمیتونم هر سال بشینم و برنامم رو با تقویم بروز کنم
اینجوری برنامه من حداکثر کاراییش یک سال هستش

plus
جمعه 30 فروردین 1392, 00:36 صبح
شاید بهترین روش نباشه، ولی شما میتونید، ابتدا روز، ماه و سال رو جدا کنید (به صورت int) و با استفاده از متد ToDateTime مربوط به کلاس System.Globalization.PersianCalendar، به تاریخ میلادی تبدیل کنید.این متد در صورتی که تاریخ نا معتبر باشه (مثل 1391/12/30) یک Exception رو Throw میکنه.با گذاشتن try...catch میشه فهمید که تاریخ معتبره یا نه.البته با توجه به هزینه try-catch مطمئن نیستم بهترین روش باشه.
البته راه دیگه هم، بررسی بازه مولفه های تاریخه.مثلا در ماه 1 تا 6 هر ماه 31 روزه و... .سال کبیسه رو هم با متد IsLeapYear مربوط به System.Globalization.PersianCalendar میتونید بررسی کنید.

misaghi.nima
جمعه 30 فروردین 1392, 01:41 صبح
فکر کنم سال های کبیسه هر چهار سال یکبار اتفاق می افتد ، اگر 91 داشتیم بعدی 4 سال بعد هست ، شما کافی 91 رو توی برنامه که میدونی کبیسه بوده رو داشته باشی ، سال های که با مضرب 4 باهاش اختلاف دارن 30 روزه هستند ، بقیه سال ها 29 روزه ، البته به شرطی که فرض من درست بوده باشه .