首页 > 开发 > Java > 正文

Java 实现倒计时功能(由秒计算天、小时、分钟、秒)

2024-07-13 10:17:11
字体:
来源:转载
供稿:网友

有时候会要求实现这样一个需求:

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 实现倒计时功能(由秒计算天、小时、分钟、秒),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对VeVb武林网网站的支持!


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表