Hallo,
ich möchte ein Programm schreiben, das mir den Tagende in Millisseconds und als normal Date anzeigt.
ich habe wie unten beschrieben versucht aber es lauft nicht, ich bekomme immer die aktuelle Uhrzeit als Tagende. Kann mir bitte jemand sagen was ich falsch mache ?
Außerdem wollte ich ein Code schreiben das genau am Tagende den Wert einer variable ändert und kann mich nicht zwischen Thread oder Timer entscheiden, was ist den die bessere alternative zwischen den beiden ?
Danke
ich möchte ein Programm schreiben, das mir den Tagende in Millisseconds und als normal Date anzeigt.
ich habe wie unten beschrieben versucht aber es lauft nicht, ich bekomme immer die aktuelle Uhrzeit als Tagende. Kann mir bitte jemand sagen was ich falsch mache ?
Außerdem wollte ich ein Code schreiben das genau am Tagende den Wert einer variable ändert und kann mich nicht zwischen Thread oder Timer entscheiden, was ist den die bessere alternative zwischen den beiden ?
Danke
Code:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class Test {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
Date time = cal.getTime();
DateFormat formatter = new SimpleDateFormat( "dd_MM_yyyy" );
//System.out.println( formatter.format( time ) ); // 26.04.10 18:11
System.out.println( time); // 26.04.10 18:11
long zeitPunkt = time.getTime();
long bisMitternacht = 86400000 -(zeitPunkt % 86400000) - 3600000 ; //GMT
Calendar zeitpunkt = Calendar.getInstance();
zeitpunkt.setTimeInMillis(zeitPunkt);
if (zeitpunkt.getTimeZone().inDaylightTime(zeitpunkt.getTime())){
bisMitternacht -= 3600000; // Sommerzeit
}
System.out.println("Tag ende: "+(zeitPunkt + bisMitternacht)); // in milliseconds
//Calendar calendar = Calendar.getInstance();
Date time2 = zeitpunkt.getTime();
DateFormat formatter2 = new SimpleDateFormat();
zeitpunkt.setTimeInMillis(+zeitPunkt + bisMitternacht);
System.out.println("Tag Ende "+formatter2.format(time2));
}
}