summaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorJeroen Frijters <jeroen@sumatra.nl>2004-10-12 11:48:31 +0000
committerJeroen Frijters <jeroen@sumatra.nl>2004-10-12 11:48:31 +0000
commit47429eeb718be91269a982a2a8dd6429537c8535 (patch)
treebc165680e0b3efcf066298a0568cd051c91836f3 /java
parentc52d66397d1b2314b5892525a6f46388f010afb3 (diff)
downloadclasspath-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.java21
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);
}