Às vezes é necessário alcançar esse requisito:
Os valores de dias, horas, minutos e segundos são todos separados, e o servidor retorna apenas uma duração de carimbo de hora.
A seguir, é apresentado o meu plano de implementação, esforçando -se para reduzir a geração de objetos e a quantidade de cálculo:
importar java.util.timer; importar java.util.timertak; classe pública CountdownUtils {private estático longo dia = 0; Hora longa estática privada = 0; Minuto longo estático privado = 0; PRIVADO ESTÁTICO LONGO DE SEGUNDO = 0; private estático booleano DayNotalReady = false; private estático booleano hournotalready = false; private estático booleano minuteNotalReady = false; public static void main (string [] args) {Long TotalSeconds = 60 * 60 * 24 * 34 + 21; initdata (TotalSeconds); new timer (). cronograma (new timerTask () {public void run () {if (SecondNotalReady) {startCount ();} else {cancel ();}}}}, 0, 1000); } / ** * Atribuição de inicialização * * @param TotalSeconds * / private estático void initData (TotalSeconds longo) {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; dia = hora / 24; hora = hora % 24; }}}} System.out.println ("Após a formatação inicial->" + dia + "dia" + hora + "hora" + minuto + "minuto" + segundo + "segundo"); } private estático void resetData () {dia = 0; hora = 0; minuto = 0; segundo = 0; DayNotalReady = false; hourNotalready = false; minuteNotalReady = false; SecondNotalready = false; } / *** Calcule as alterações em cada valor** / public static void startCount () {if (SecondNotalReady) {if (Second> 0) {Second--; if (Second == 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) {hour--; minuto = 59; segundo = 59; if (minuto == 0 &&! hourNotalready) {MinuteNotalReady = false; }} else {if (hourNotalready) {if (hora> 0) {hour--; minuto = 59; segundo = 59; if (hora == 0 &&! DayNotalReady) {hourNotalReady = false; }} else {if (DayNotalReady) {dia--; hora = 23; minuto = 59; segundo = 59; if (dia == 0) {DayNotalReady = false; }}}}}}}}}}}} System.out.println ("ainda está pronto para o prazo->" + dia + "dia" + hora + "hora" + minuto + "minuto" + segundo + "segundo"); }}Resumir
O exposto acima é a função de contagem regressiva de implementação de Java, introduzida pelo editor (calculando dias, horas, minutos e segundos de segundos). Espero que seja útil para todos. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a todos a tempo. Muito obrigado pelo seu apoio ao site wulin.com!