diff options
author | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-02-14 19:31:58 +0000 |
---|---|---|
committer | aph <aph@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-02-14 19:31:58 +0000 |
commit | b128cc6dae9af52de4df33ce72b2f5a484be9251 (patch) | |
tree | cfe6e7ce2fc559adce3f4a0e03903eff1b6cba27 /libjava/classpath/java | |
parent | 1f0a4df8cc5ee68e09f680b735b355d1fe0acc1f (diff) | |
download | gcc-b128cc6dae9af52de4df33ce72b2f5a484be9251.tar.gz |
2007-02-14 Jakub Jelinek <jakub@redhat.com>
Andrew Haley <aph@redhat.com>
* java/util/TimeZone.java (getDateParams): Negate dayOfWeek.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@121955 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/classpath/java')
-rw-r--r-- | libjava/classpath/java/util/TimeZone.java | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/libjava/classpath/java/util/TimeZone.java b/libjava/classpath/java/util/TimeZone.java index f349b031e95..a253561b046 100644 --- a/libjava/classpath/java/util/TimeZone.java +++ b/libjava/classpath/java/util/TimeZone.java @@ -1090,18 +1090,30 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable int day; // Month, week of month, day of week + + // "Mm.w.d". d is between 0 (Sunday) and 6. Week w is + // between 1 and 5; Week 1 is the first week in which day d + // occurs and Week 5 specifies the last d day in the month. + // Month m is between 1 and 12. + month = Integer.parseInt(date.substring(1, date.indexOf('.'))); int week = Integer.parseInt(date.substring(date.indexOf('.') + 1, date.lastIndexOf('.'))); int dayOfWeek = Integer.parseInt(date.substring(date.lastIndexOf('.') + 1)); - if (week == 5) - day = -1; // last day of month is -1 in java, 5 in TZ - else - // first day of week starting on or after. - day = (week - 1) * 7 + 1; - dayOfWeek++; // Java day of week is one-based, Sunday is first day. + + if (week == 5) + day = -1; // last day of month is -1 in java, 5 in TZ + else + { + // First day of week starting on or after. For example, + // to specify the second Sunday of April, set month to + // APRIL, day-of-month to 8, and day-of-week to -SUNDAY. + day = (week - 1) * 7 + 1; + dayOfWeek = -dayOfWeek; + } + month--; // Java month is zero-based. return new int[] { month, day, dayOfWeek }; } |