Javaは、カウントダウン機能を実現します。


時々このような要求を実現することが要求されます。

一日、時間、分、秒の数値は分離されています。サーバー側はタイムスタンプの長さだけを返します。
以下は私の実現案です。対象の生成量を減らし、計算量を減らすために努力します。

import java.util.Timer; 
import java.util.TimerTask; 
public class CountDownUtils { 
 private static long day = 0; 
 private static long hour = 0; 
 private static long minute = 0; 
 private static long second = 0; 
 private static boolean dayNotAlready = false; 
 private static boolean hourNotAlready = false; 
 private static boolean minuteNotAlready = false; 
 private static boolean secondNotAlready = false; 
 public static void main(String[] args) { 
 long totalSeconds = 60 * 60 * 24 * 34 + 21; 
 initData(totalSeconds); 
 new Timer().schedule(new TimerTask() { 
  public void run() { 
  if (secondNotAlready) { 
   startCount(); 
  } else { 
   cancel(); 
  } 
  } 
 }, 0, 1000); 
 } 
 /** 
 *       
 * 
 * @param totalSeconds 
 */ 
 private static void initData(long totalSeconds) { 
 resetData(); 
 if (totalSeconds > 0) { 
  secondNotAlready = true; 
  second = totalSeconds; 
  if (second >= 60) { 
  minuteNotAlready = true; 
  minute = second / 60; 
  second = second % 60; 
  if (minute >= 60) { 
   hourNotAlready = true; 
   hour = minute / 60; 
   minute = minute % 60; 
   if (hour > 24) { 
   dayNotAlready = true; 
   day = hour / 24; 
   hour = hour % 24; 
   } 
  } 
  } 
 } 
 System.out.println("      ――>" + day + " " + hour + "  " + minute 
  + "  " + second + " "); 
 } 
 private static void resetData() { 
 day = 0; 
 hour = 0; 
 minute = 0; 
 second = 0; 
 dayNotAlready = false; 
 hourNotAlready = false; 
 minuteNotAlready = false; 
 secondNotAlready = false; 
 } 
 /** 
 *          
 * 
 */ 
 public static void startCount() { 
 if (secondNotAlready) { 
  if (second > 0) { 
  second--; 
  if (second == 0 && !minuteNotAlready) { 
   secondNotAlready = false; 
  } 
  } else { 
  if (minuteNotAlready) { 
   if (minute > 0) { 
   minute--; 
   second = 59; 
   if (minute == 0 && !hourNotAlready) { 
    minuteNotAlready = false; 
   } 
   } else { 
   if (hourNotAlready) { 
    if (hour > 0) { 
    hour--; 
    minute = 59; 
    second = 59; 
    if (hour == 0 && !dayNotAlready) { 
     hourNotAlready = false; 
    } 
    } else { 
    if (dayNotAlready) { 
     day--; 
     hour = 23; 
     minute = 59; 
     second = 59; 
     if (day == 0) { 
     dayNotAlready = false; 
     } 
    } 
    } 
   } 
   } 
  } 
  } 
 } 
 System.out.println("        ――>" + day + " " + hour + "  " + minute 
  + "  " + second + " "); 
 } 
} 
締め括りをつける
以上は小编が绍介したJavaのカウントダウン机能です。(秒で计算して、时间、分、秒)、皆さんに助けてほしいです。もし何か疑问があれば、メッセージをください。小编はすぐに返事します。ここでも私たちのサイトを応援してくれてありがとうございます。