mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
8319423: Improve Year.isLeap by checking divisibility by 16
Reviewed-by: naoto, rriggs
This commit is contained in:
parent
59e9981ec2
commit
7d25f1c6cb
6 changed files with 125 additions and 7 deletions
|
@ -315,7 +315,10 @@ public final class Year
|
|||
* @return true if the year is leap, false otherwise
|
||||
*/
|
||||
public static boolean isLeap(long year) {
|
||||
return ((year & 3) == 0) && ((year % 100) != 0 || (year % 400) == 0);
|
||||
// A year that is a multiple of 100, 200 and 300 is not divisible by 16, but 400 is.
|
||||
// So for a year that's divisible by 4, checking that it's also divisible by 16
|
||||
// is sufficient to determine it must be a leap year.
|
||||
return (year & 15) == 0 ? (year & 3) == 0 : (year & 3) == 0 && year % 100 != 0;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue