summaryrefslogtreecommitdiffstats
path: root/libjava/java/util/GregorianCalendar.java
diff options
context:
space:
mode:
authormkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>2003-11-27 09:16:13 +0000
committermkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>2003-11-27 09:16:13 +0000
commit63d28241c5d0643650ea1c7bd0dbcba16cc9574e (patch)
treec3e5b3e6556c8b3b8819997437729e6cd8b51ed6 /libjava/java/util/GregorianCalendar.java
parent6d81b60cd6c6112dcc970ade55f50f27c9464a74 (diff)
downloadppe42-gcc-63d28241c5d0643650ea1c7bd0dbcba16cc9574e.tar.gz
ppe42-gcc-63d28241c5d0643650ea1c7bd0dbcba16cc9574e.zip
2003-11-27 Ito Kazumitsu <kaz@maczuka.gcd.org>
* java/util/GregorianCalendar.java (getLinearTime): Avoid counting the leap day of the leap year twice. (computeFields): First week of month is 1 not 0. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73984 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java/util/GregorianCalendar.java')
-rw-r--r--libjava/java/util/GregorianCalendar.java10
1 files changed, 6 insertions, 4 deletions
diff --git a/libjava/java/util/GregorianCalendar.java b/libjava/java/util/GregorianCalendar.java
index 91f5890ef06..624924cd208 100644
--- a/libjava/java/util/GregorianCalendar.java
+++ b/libjava/java/util/GregorianCalendar.java
@@ -1,5 +1,5 @@
/* java.util.GregorianCalendar
- Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -264,8 +264,10 @@ public class GregorianCalendar extends Calendar
//
// The additional leap year factor accounts for the fact that
// a leap day is not seen on Jan 1 of the leap year.
+ // And on and after the leap day, the leap day has already been
+ // included in dayOfYear.
int gregOffset = (year / 400) - (year / 100) + 2;
- if (isLeapYear (year, true) && dayOfYear < 31 + 29)
+ if (isLeapYear (year, true))
--gregOffset;
time += gregOffset * (24 * 60 * 60 * 1000L);
}
@@ -604,12 +606,12 @@ public class GregorianCalendar extends Calendar
calculateDay(++day, gregorian);
}
- fields[DAY_OF_WEEK_IN_MONTH] = (fields[DAY_OF_MONTH] + 6) / 7;
+ fields[DAY_OF_WEEK_IN_MONTH] = (fields[DAY_OF_MONTH] + 12) / 7;
// which day of the week are we (0..6), relative to getFirstDayOfWeek
int relativeWeekday = (7 + fields[DAY_OF_WEEK] - getFirstDayOfWeek()) % 7;
- fields[WEEK_OF_MONTH] = (fields[DAY_OF_MONTH] - relativeWeekday + 6) / 7;
+ fields[WEEK_OF_MONTH] = (fields[DAY_OF_MONTH] - relativeWeekday + 12) / 7;
int weekOfYear = (fields[DAY_OF_YEAR] - relativeWeekday + 6) / 7;
OpenPOWER on IntegriCloud