时间:2021-05-20
有时候会要求实现这样一个需求:
天、小时、分钟、秒的数值都是隔开的,服务器端只返回一个时间戳长度。
以下就是我的实现方案,力求减少对象生成、减小计算量:
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 实现倒计时功能(由秒计算天、小时、分钟、秒),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
精确到毫秒秒杀倒计时PHP源码实例,前台js活动展示倒计时,后台计算倒计时时间。每0.1秒定时刷新活动倒计时时间。PHP://注意:php的时间是以秒算。js的
CountDownTimer由系统提供查资料的时候发现了CountDownTimer这个类之后果断抛弃了以前的倒计时做法功能:30秒倒计时每次间隔1秒参数:mc
本文实例为大家分享了js实现5秒倒计时并跳转功能的具体代码,供大家参考,具体内容如下倒计时五秒//使用匿名函数方法functioncountDown(){var
比如,一些网站上的手机短信认证的功能,有类似实现点击按钮后,倒计时60秒才能再次点击发送的效果。此例子用Javascript实现点击按钮后,倒计时60秒才能再次
1、jQuery.countdown插件显示格式:50周01天07小时18分41秒(秒为跑秒)一个页面可以有多个倒计时实例,可以停止和开始,它没有提供太多的功能