Java 实现倒计时功能(由秒计算天、小时、分钟、秒)实现倒计时功能(由秒计算天、小时、分钟、秒)
最近做项目遇到这样的需求,天、小时、分钟、秒的数值都是隔开的,服务器端只返回一个时间戳长度,怎么
实现这样的功能呢?下面小编给大家带来了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;
}