diff options
| author | Jeroen Frijters <jeroen@sumatra.nl> | 2004-10-12 11:48:31 +0000 |
|---|---|---|
| committer | Jeroen Frijters <jeroen@sumatra.nl> | 2004-10-12 11:48:31 +0000 |
| commit | 47429eeb718be91269a982a2a8dd6429537c8535 (patch) | |
| tree | bc165680e0b3efcf066298a0568cd051c91836f3 /java | |
| parent | c52d66397d1b2314b5892525a6f46388f010afb3 (diff) | |
| download | classpath-47429eeb718be91269a982a2a8dd6429537c8535.tar.gz | |
2004-10-12 Jeroen Frijters <jeroen@frijters.net>
* java/util/Date.java
(Date(int,int,int), Date(int,int,int,int,int)): Delegate to other
constructor.
(Date(int,int,int,int,int,int)): Fixed to handle out-of-range
arguments.
(getTimezoneOffset): Inverted sign.
Diffstat (limited to 'java')
| -rw-r--r-- | java/util/Date.java | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/java/util/Date.java b/java/util/Date.java index 43ae96990..30b421f29 100644 --- a/java/util/Date.java +++ b/java/util/Date.java @@ -93,7 +93,7 @@ public class Date implements Cloneable, Comparable, java.io.Serializable */ public Date(int year, int month, int day) { - time = new GregorianCalendar(year + 1900, month, day).getTimeInMillis(); + this(year, month, day, 0, 0, 0); } /** @@ -103,21 +103,24 @@ public class Date implements Cloneable, Comparable, java.io.Serializable */ public Date(int year, int month, int day, int hour, int min) { - time = - new GregorianCalendar(year + 1900, month, day, hour, - min).getTimeInMillis(); + this(year, month, day, hour, min, 0); } /** * Creates a new Date Object representing the given time. * @deprecated use <code>new GregorianCalendar(year+1900, month, - * day)</code> instead. + * day, hour, min, sec)</code> instead. */ public Date(int year, int month, int day, int hour, int min, int sec) { - time = - new GregorianCalendar(year + 1900, month, day, hour, min, - sec).getTimeInMillis(); + GregorianCalendar cal = new GregorianCalendar(year + 1900, 0, 1); + int dst = cal.get(Calendar.DST_OFFSET); + cal.add(GregorianCalendar.MONTH, month); + cal.add(GregorianCalendar.DAY_OF_MONTH, day - 1); + cal.add(GregorianCalendar.HOUR, hour); + cal.add(GregorianCalendar.MINUTE, min); + cal.add(GregorianCalendar.SECOND, sec); + time = cal.getTimeInMillis() + dst - cal.get(Calendar.DST_OFFSET); } /** @@ -178,7 +181,7 @@ public class Date implements Cloneable, Comparable, java.io.Serializable { Calendar cal = Calendar.getInstance(); cal.setTimeInMillis(time); - return (cal.get(Calendar.ZONE_OFFSET) + return - (cal.get(Calendar.ZONE_OFFSET) + cal.get(Calendar.DST_OFFSET)) / (60 * 1000); } |
