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 实现倒计时功能(由秒计算天、小时、分钟、秒),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
以上是 Java 实现倒计时功能(由秒计算天、小时、分钟、秒) 的全部内容, 来源链接: utcz.com/z/346533.html