android com.github.msarhan.ummalqura.calendar.DateTimeException:Hijrah月份的日期无效:30

0kjbasz6  于 2023-09-28  发布在  Android
关注(0)|答案(1)|浏览(116)

bounty已结束。此问题的答案有资格获得+50声望奖励。赏金宽限期5小时后结束。Ahmed Elsayed正在寻找一个答案从一个有信誉的来源

我在我的Android应用程序中使用Ummalqura日历的msarhan库,当我打开日历并选择第30天并转到另一个月的最后一天29并选择它时,应用程序崩溃com.github.msarhan.ummalqura.calendar.DateTimeException: Invalid Hijrah day of month: 30
在例外之下

  1. com.github.msarhan.ummalqura.calendar.DateTimeException: Invalid Hijrah day of month: 30
  2. at com.github.msarhan.ummalqura.calendar.HijrahChronology.getEpochDay(HijrahChronology.java:255)
  3. at com.github.msarhan.ummalqura.calendar.HijrahChronology.toGregorian(HijrahChronology.java:697)
  4. at com.github.msarhan.ummalqura.calendar.UmmalquraCalendar.set(UmmalquraCalendar.java:259)
  5. at net.alhazmy13.hijridatepicker.date.hijri.HijriDatePickerDialog.onDayOfMonthSelected(HijriDatePickerDialog.java:991)
  6. at net.alhazmy13.hijridatepicker.date.hijri.MonthAdapter.onDayTapped(MonthAdapter.java:235)
  7. at net.alhazmy13.hijridatepicker.date.hijri.MonthAdapter.onDayClick(MonthAdapter.java:224)
  8. at net.alhazmy13.hijridatepicker.date.hijri.MonthView.onDayClick(MonthView.java:598)
  9. at net.alhazmy13.hijridatepicker.date.hijri.MonthView.onTouchEvent(MonthView.java:284)
  10. at android.view.View.dispatchTouchEvent(View.java:14376)
  11. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3863)
  12. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3551)
  13. at android.widget.AbsListView.dispatchTouchEvent(AbsListView.java:6365)
  14. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3863)
  15. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3551)
  16. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3863)
  17. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3551)
  18. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3863)
  19. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3551)
  20. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3863)
  21. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3551)
  22. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3863)
  23. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3551)
  24. at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3863)
  25. at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3551)
  26. at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:733)
  27. at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1922)
  28. at android.app.Dialog.dispatchTouchEvent(Dialog.java:1008)
  29. at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:691)
  30. at android.view.View.dispatchPointerEvent(View.java:14644)
  31. at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:6523)
  32. at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:6310)
  33. at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5748)
  34. at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5801)
  35. at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5767)
  36. at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:5923)
  37. at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5775)
  38. at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:5980)
  39. at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5748)
  40. at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:5801)
  41. at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:5767)
  42. at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:5775)
  43. at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:5748)
  44. at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:8907)
  45. at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:8768)
  46. at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:8721)
  47. at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:9043)
  48. at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:194)
  49. at android.os.MessageQueue.nativePollOnce(Native Method)
  50. at android.os.MessageQueue.next(MessageQueue.java:336)
  51. at android.os.Looper.loop(Looper.java:197)

build.gradle

  1. api group: 'com.github.msarhan', name: 'ummalqura-calendar', version:'2.0.2'
  2. implementation 'net.alhazmy13.hijridatepicker:library:3.0.0'

MyActivity

  1. private fun showHijriDatePicker(
  2. editText: TextInputEditText,
  3. isFromDatePicker: Boolean = false
  4. ) {
  5. val datePicker = HijriDatePickerDialog.newInstance(
  6. { _, year, monthOfYear, dayOfMonth ->
  7. when (isFromDatePicker) {
  8. true -> {
  9. fromDateValue = formatHijriDate(year, monthOfYear, dayOfMonth)
  10. }
  11. false -> {
  12. toDateValue = formatHijriDate(year, monthOfYear, dayOfMonth)
  13. }
  14. }
  15. editText.setText(formatHijriDate(year, monthOfYear, dayOfMonth))
  16. },
  17. ummalquraCalendar.get(UmmalquraCalendar.YEAR),
  18. ummalquraCalendar.get(UmmalquraCalendar.MONTH),
  19. ummalquraCalendar.get(UmmalquraCalendar.DAY_OF_MONTH)
  20. )
  21. }
wmvff8tz

wmvff8tz1#

  1. val maxDayOfMonth = ummalquraCalendar.getActualMaximum(UmmalquraCalendar.DAY_OF_MONTH)
  2. val selectedDay = min(ummalquraCalendar.get(UmmalquraCalendar.DAY_OF_MONTH), maxDayOfMonth)

相关问题