Skip to content

Instantly share code, notes, and snippets.

@StefRe
Last active May 4, 2017 11:03
Show Gist options
  • Save StefRe/010a31a9576334e479c4b9d4deb288ff to your computer and use it in GitHub Desktop.
Save StefRe/010a31a9576334e479c4b9d4deb288ff to your computer and use it in GitHub Desktop.
DST and Leap Secondes Test Java
import java.util.*;
public class DstAndLeapSecondsTest{
public static void main(String[] args){
Calendar start, old, curr;
long diff;
start = Calendar.getInstance();
start.set(Calendar.YEAR, 2012);
start.set(Calendar.MONTH, Calendar.JANUARY);
start.set(Calendar.DAY_OF_MONTH, 1);
start.set(Calendar.HOUR_OF_DAY, 0);
start.set(Calendar.MINUTE, 0);
start.set(Calendar.SECOND, 0);
start.set(Calendar.MILLISECOND, 0);
old = (Calendar)start.clone();
old.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println("set - " + old.getTimeZone().getDisplayName());
for (int i = 3; i <= 72; i += 3){
curr = (Calendar)old.clone();
curr.set(Calendar.YEAR, 2012 + i / 12);
curr.set(Calendar.MONTH, Calendar.JANUARY + i % 12);
diff = curr.getTimeInMillis()-old.getTimeInMillis();
System.out.println(old.getTime().toString() + "-->" + curr.getTime().toString() + ": " +
diff/1000 + " s = " + diff / (24.*60*60*1000) + " days" + " (" +
diff % (24*60*60*1000) /1000 + " s)");
old = curr;
}
old = (Calendar)start.clone();
old.setTimeZone(TimeZone.getTimeZone("Europe/Berlin"));
System.out.println("set - " + old.getTimeZone().getDisplayName());
for (int i = 3; i <= 72; i += 3){
curr = (Calendar)old.clone();
curr.set(Calendar.YEAR, 2012 + i / 12);
curr.set(Calendar.MONTH, Calendar.JANUARY + i % 12);
diff = curr.getTimeInMillis()-old.getTimeInMillis();
System.out.println(old.getTime().toString() + "-->" + curr.getTime().toString() + ": " +
diff/1000 + " s = " + diff / (24.*60*60*1000) + " days" + " (" +
diff % (24*60*60*1000) /1000 + " s)");
old = curr;
}
old = (Calendar)start.clone();
old.setTimeZone(TimeZone.getTimeZone("UTC"));
System.out.println("add - " + old.getTimeZone().getDisplayName());
for (int i = 0; i < 24; i++){
curr = (Calendar)old.clone();
curr.add(Calendar.MONTH, 3);
diff = curr.getTimeInMillis()-old.getTimeInMillis();
System.out.println(old.getTime().toString() + "-->" + curr.getTime().toString() + ": " +
diff/1000 + " s = " + diff / (24.*60*60*1000) + " days" + " (" +
diff % (24*60*60*1000) /1000 + " s)");
old = curr;
}
old = (Calendar)start.clone();
old.setTimeZone(TimeZone.getTimeZone("Europe/Berlin"));
System.out.println("add - " + old.getTimeZone().getDisplayName());
for (int i = 0; i < 24; i++){
curr = (Calendar)old.clone();
curr.add(Calendar.MONTH, 3);
diff = curr.getTimeInMillis()-old.getTimeInMillis();
System.out.println(old.getTime().toString() + "-->" + curr.getTime().toString() + ": " +
diff/1000 + " s = " + diff / (24.*60*60*1000) + " days" + " (" +
diff % (24*60*60*1000) /1000 + " s)");
old = curr;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment