samanzamani / PersianDate

Persian date for android
BSD 3-Clause "New" or "Revised" License
328 stars 40 forks source link

به روز کردن خودکار مقدار shDay باتوجه به مقدار shMonth #77

Closed ahmad-shoja closed 1 year ago

ahmad-shoja commented 1 year ago

سلام و خسته نباشید.

تغییر ماه و سال می‌تونه مقدار تاریخ نهایی رو به اشتباه بیاندازد.

اگر به صورت زیر مقادیر shDay, shMonth رو تغییر بدیم تاریخ خروجی به خطا میافته.

    val persianDate = PersianDate()
    val pdformater = PersianDateFormat()
    persianDate.shMonth = 1
    persianDate.shDay = 31
    persianDate.shMonth = 12
    text = pdformater.format(persianDate)

خروجی نهایی تاریخ به صورت : پنجشنبه 31 اسفند 1401 خواهد بود که اشتباه است ولی انتظار میرود خروجی به صورت: پنجشنبه 29 اسفند 1401 باشه.

برای حل این مشکل میتونیم هنگام تغییر ماه و سال (درسال های کبیسه) مقدار روز رو وقتی که بیش از تعداد روز های ماه است به آخرین روز تغییر بدیم

samanzamani commented 1 year ago

سلام ممنون از گزارشی که دادید. بله در حال حاضر اعتبارسنجی برروی اطلاعات ورودی صورت نمیگیره که این مسئله در نسخه جدید برطرف خواهد شد.

samanzamani commented 1 year ago

سلام @ahmad-shoja اعتبار سنجی داده های ورودی کاربر در نسخه 1.6.0 اضافه شد و در صورت نامعتبر بودن اطلاعات وروردی IllegalArgumentException برگشت داده خواهد شد. با تشکر از گزارش که داده بودید