From 6c0984a71ceb313fb2b59df4af960b2309bf2ade Mon Sep 17 00:00:00 2001 From: Neil Fuller Date: Wed, 17 Apr 2019 15:54:22 +0100 Subject: [PATCH] Fix incorrect leap year logic Fixing an issue for 2100 in SimpleMonthView. Tweak the logic in DatePickerCalendarDelegate to optimize for the common case and save a calculation. Bug: 28784177 Test: build only Change-Id: I7395ab9f3dc90ac4f7cef1edee6f7bc156f4ab76 --- core/java/android/widget/DatePickerCalendarDelegate.java | 2 +- core/java/android/widget/SimpleMonthView.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core/java/android/widget/DatePickerCalendarDelegate.java b/core/java/android/widget/DatePickerCalendarDelegate.java index 46edf475e398c..53e145eb15fd0 100755 --- a/core/java/android/widget/DatePickerCalendarDelegate.java +++ b/core/java/android/widget/DatePickerCalendarDelegate.java @@ -597,7 +597,7 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { case Calendar.NOVEMBER: return 30; case Calendar.FEBRUARY: - return ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? 29 : 28; + return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) ? 29 : 28; default: throw new IllegalArgumentException("Invalid Month"); } diff --git a/core/java/android/widget/SimpleMonthView.java b/core/java/android/widget/SimpleMonthView.java index 9982732384dad..80de6fc65f90f 100644 --- a/core/java/android/widget/SimpleMonthView.java +++ b/core/java/android/widget/SimpleMonthView.java @@ -850,7 +850,7 @@ class SimpleMonthView extends View { case Calendar.NOVEMBER: return 30; case Calendar.FEBRUARY: - return (year % 4 == 0) ? 29 : 28; + return (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0)) ? 29 : 28; default: throw new IllegalArgumentException("Invalid Month"); }