diff options
author | Bryce McKinlay <bryce@waitaki.otago.ac.nz> | 2001-07-26 11:21:45 +0000 |
---|---|---|
committer | Bryce McKinlay <bryce@gcc.gnu.org> | 2001-07-26 12:21:45 +0100 |
commit | fa397ddafb335eb0a67b08e014605bf5f9ab7cc5 (patch) | |
tree | f1888f988daa008faa5d48c983f690f3067987c7 /libjava/java/util/GregorianCalendar.java | |
parent | 2cf50fd3a47891bb7ae2a0ada9254ae7ef236a28 (diff) | |
download | gcc-fa397ddafb335eb0a67b08e014605bf5f9ab7cc5.zip gcc-fa397ddafb335eb0a67b08e014605bf5f9ab7cc5.tar.gz gcc-fa397ddafb335eb0a67b08e014605bf5f9ab7cc5.tar.bz2 |
Calendar.java (set): Never recompute fields here.
* java/util/Calendar.java (set): Never recompute fields here. They
will already be set if someone set time explicitly, and it can cause
problems to do so. Don't invalidate AM_PM setting if HOUR is set.
* java/util/GregorianCalendar.java (computeTime): Don't ignore an
HOUR setting if AM_PM is set. Don't try to ensure the HOUR value is
sane.
* java/text/SimpleDateFormat.java (defaultCentury): New field.
(readObject): Call set2DigitYearStart if appropriate so that
defaultCentury is calculated.
(SimpleDateFormat): Don't bother clearing calendar here. Call
computeCenturyStart().
(set2DigitYearStart): Calculate and set defaultCentury.
(format): Don't clone the calendar. Use "calendar" not "theCalendar"
everywhere.
(parse): Likewise. If the pattern is "y" or "yy" and it found exactly
2 numeric digits, use the 80-20 heuristic to parse the value into a
default century based on defaultCenturyStart.
(computeCenturyStart): Rewritten. Call set2DigitYearStart().
From-SVN: r44395
Diffstat (limited to 'libjava/java/util/GregorianCalendar.java')
-rw-r--r-- | libjava/java/util/GregorianCalendar.java | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/libjava/java/util/GregorianCalendar.java b/libjava/java/util/GregorianCalendar.java index 1a8d073..2c68907 100644 --- a/libjava/java/util/GregorianCalendar.java +++ b/libjava/java/util/GregorianCalendar.java @@ -373,9 +373,17 @@ public class GregorianCalendar extends Calendar year = 1 - year; int[] daysOfYear = getDayOfYear(year); - int hour = isSet[HOUR_OF_DAY] ? fields[HOUR_OF_DAY] - : (isSet[HOUR] && isSet[AM_PM] - ? fields[AM_PM] * 12 + (fields[HOUR] % 12) : 0); + + int hour = 0; + if (isSet[HOUR_OF_DAY]) + hour = fields[HOUR_OF_DAY]; + else if (isSet[HOUR]) + { + hour = fields[HOUR]; + if (isSet[AM_PM] && fields[AM_PM] == PM) + hour += 12; + } + int minute = isSet[MINUTE] ? fields[MINUTE] : 0; int second = isSet[SECOND] ? fields[SECOND] : 0; int millis = isSet[MILLISECOND] ? fields[MILLISECOND] : 0; |