From 9900c52689e876c5e10ca95c49092387231c725e Mon Sep 17 00:00:00 2001 From: Neil Fuller Date: Wed, 17 Apr 2019 08:48:23 +0100 Subject: Fix incorrect leap year logic Fixing an issue for 2100. Bug: 28784177 Test: build only Change-Id: I4579ba2d07b8157f368fd31df5396677156aeeb0 --- core/java/android/widget/DatePickerCalendarDelegate.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/java/android/widget/DatePickerCalendarDelegate.java b/core/java/android/widget/DatePickerCalendarDelegate.java index e40023d0da1d..46edf475e398 100755 --- a/core/java/android/widget/DatePickerCalendarDelegate.java +++ b/core/java/android/widget/DatePickerCalendarDelegate.java @@ -581,7 +581,7 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { return DatePicker.class.getName(); } - public static int getDaysInMonth(int month, int year) { + private static int getDaysInMonth(int month, int year) { switch (month) { case Calendar.JANUARY: case Calendar.MARCH: @@ -597,7 +597,7 @@ class DatePickerCalendarDelegate extends DatePicker.AbstractDatePickerDelegate { 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"); } -- cgit v1.2.3-59-g8ed1b