A veces se requiere lograr tal requisito:
Los valores de días, horas, minutos y segundos están separados, y el servidor solo devuelve una longitud de sello de tiempo.
El siguiente es mi plan de implementación, esforzándose por reducir la generación de objetos y la cantidad de cálculo:
import java.util.timer; import java.util.timerTask; clase pública CountdownUtils {Private static Long Day = 0; hora larga estática privada = 0; Private estático largo minuto = 0; static privado largo segundo = 0; Private static boolean daynotalready = false; Private static boolean Hournotalready = false; Minutenotaleotalade de booleano estático privado = falso; public static void main (String [] args) {Long TotalSeconds = 60 * 60 * 24 * 34 + 21; initData (totseconds); new Timer (). Schedule (new TimeTask () {public void run () {if (SecondNotalready) {startCount ();} else {cancel ();}}}}, 0, 1000); } / ** * Asignación de inicialización * * @param totalSeconds * / private static void initData (Long TotalSeconds) {resetData (); if (TotalSeconds> 0) {SecondNotalready = True; segundo = TOTALSECONDS; if (segundo> = 60) {minutenotalready = true; minuto = segundo / 60; segundo = segundo % 60; if (minuto> = 60) {HourNotalready = true; hora = minuto / 60; minuto = minuto % 60; if (hora> 24) {dayNotalready = true; día = hora / 24; hora = hora % 24; }}}} System.out.println ("Después del formato inicial->" + día + "día" + hora + "hora" + minuto + "minuto" + segundo + "segundo"); } private static void resetData () {day = 0; hora = 0; minuto = 0; segundo = 0; dayNotAlready = false; Hournotalready = false; minutenotalready = false; SecondNotalready = false; } / *** Calcule los cambios en cada valor** / public static void startCount () {if (SecondNotalready) {if (segundo> 0) {segundo--; if (segundo == 0 &&! minutenotalready) {SecondNotalready = false; }} else {if (minutenotalready) {if (minuto> 0) {minuto--; segundo = 59; if (minuto == 0 &&! Hournotalready) {minutenotalready = false; }} else {if (HourNotalready) {if (hora> 0) {hora--; minuto = 59; segundo = 59; if (minuto == 0 &&! Hournotalready) {minutenotalready = false; }} else {if (HourNotalready) {if (hora> 0) {hora--; minuto = 59; segundo = 59; if (hora == 0 &&! }} else {if (dayNotalready) {Day--; hora = 23; minuto = 59; segundo = 59; if (day == 0) {dayNotalready = false; }}}}}}}}}}} System.out.println ("todavía está a la fecha límite->" + día + "día" + hora + "hora" + minuto + "minuto" + segundo + "segundo"); }}Resumir
Lo anterior es la función de cuenta regresiva de implementación de Java introducida por el editor (calculando días, horas, minutos y segundos de segundos). Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!