Ich möchte einen Countdown-Timer bis zum Ende des Jahres einrichten, jedes Jahr, ohne den Jahreswert zu aktualisieren. In Javascript, um das Countdown-Datum zu erhalten, wäre es:Android/Java: Jährliches Countodwn mit ständig zu aktualisieren
Wie würde ich dies in Java implementieren? (Ja, ich weiß, Java und JavaScript sind nicht verwandt, ich habe es in Javascript passieren nur konnte es aber nicht für Java herauszufinden, gerade begonnen Java lernen ....)
Code:
Calendar endOfYear = Calendar.getInstance();
endOfYear.setTime(new Date(0)); /* reset */
endOfYear.set(Calendar.DAY_OF_MONTH, 31);
endOfYear.set(Calendar.MONTH, 11);
endOfYear.set(Calendar.YEAR, Calendar.getInstance().get(Calendar.YEAR));
Calendar today = Calendar.getInstance();
double t = endOfYear.getTimeInMillis() - today.getTimeInMillis();
double seconds = Math.floor((t/1000) % 60);
double minutes = Math.floor((t/1000/60) % 60);
double hours = Math.floor((t/(1000 * 60 * 60)) % 24);
double days = Math.floor(t/(1000 * 60 * 60 * 24));
System.out.printf(days + " days, " + hours + " hours, " + minutes + " minutes and " + seconds + " seconds\n");
Ausgang:
03-24 18:16:05.177 1800-1800/com.ehlien.clevercash I/System.out: 282.0 days, 1.0 hours, 43.0 minutes and 54.0 seconds
03-24 18:16:06.180 1800-1800/com.ehlien.clevercash I/System.out: 282.0 days, 1.0 hours, 43.0 minutes and 53.0 seconds
03-24 18:16:07.182 1800-1800/com.ehlien.clevercash I/System.out: 282.0 days, 1.0 hours, 43.0 minutes and 52.0 seconds
03-24 18:16:08.184 1800-1800/com.ehlien.clevercash I/System.out: 282.0 days, 1.0 hours, 43.0 minutes and 51.0 seconds
03-24 18:16:09.187 1800-1800/com.ehlien.clevercash I/System.out: 282.0 days, 1.0 hours, 43.0 minutes and 50.0 seconds
03-24 18:16:10.190 1800-1800/com.ehlien.clevercash I/System.out: 282.0 days, 1.0 hours, 43.0 minutes and 49.0 seconds
Aber es ist ab 5 Stunden. Wo soll es 6 Stunden, zeigt es 1 Stunde ...
Werfen Sie einen Blick auf die [ 'Kalender '] (http://developer.android.com/reference/java/util/Calendar.html) Klasse. –