详解java倒计时三种简单实现方式
作者:黑仔002 时间:2023-11-11 16:47:38
写完js倒计时,突然想用java实现倒计时,写了三种实现方式
一:设置时长的倒计时;
二:设置时间戳的倒计时;
三:使用java.util.Timer类实现的时间戳倒计时
代码如下:
package timer;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;
/**
* java演示倒计时
*
*/
public class TimeTest {
public static int time = 60 * 60 * 60;
public static Calendar c;
public static long endTime;
public static Date date;
public static long startTime;
public static long midTime;
public static void main(String[] args) {
c = Calendar.getInstance();
c.set(2017, 4, 17, 0, 0, 0);// 注意月份的设置,0-11表示1-12月
// c.set(Calendar.YEAR, 2017);
// c.set(Calendar.MONTH, 4);
// c.set(Calendar.DAY_OF_MONTH, 17);
// c.set(Calendar.HOUR_OF_DAY, 0);
// c.set(Calendar.MINUTE, 0);
// c.set(Calendar.SECOND, 0);
endTime = c.getTimeInMillis();
date = new Date();
startTime = date.getTime();
midTime = (endTime - startTime) / 1000;
// time1();//方式一
time2();// 方式二
// time3();//方式三
}
/**
* 方式三: 使用java.util.Timer类进行倒计时
*/
private static void time3() {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
public void run() {
midTime--;
long hh = midTime / 60 / 60 % 60;
long mm = midTime / 60 % 60;
long ss = midTime % 60;
System.out.println("还剩" + hh + "小时" + mm + "分钟" + ss + "秒");
}
}, 0, 1000);
}
/**
* 方式二: 设定时间戳,倒计时
*/
private static void time2() {
while (midTime > 0) {
midTime--;
long hh = midTime / 60 / 60 % 60;
long mm = midTime / 60 % 60;
long ss = midTime % 60;
System.out.println("还剩" + hh + "小时" + mm + "分钟" + ss + "秒");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
/**
* 方式一: 给定时长倒计时
*/
private static void time1() {
while (time > 0) {
time--;
try {
Thread.sleep(1000);
int hh = time / 60 / 60 % 60;
int mm = time / 60 % 60;
int ss = time % 60;
System.out.println("还剩" + hh + "小时" + mm + "分钟" + ss + "秒");
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
运行结果:
time1()结果:
time2()结果:
time3()结果:
来源:http://www.cnblogs.com/heizai002/p/6862625.html
标签:java,倒计时
0
投稿
猜你喜欢
C#四种计时器Timer的区别和用法
2021-10-12 01:31:14
C# windows语音识别与朗读实例
2023-04-15 12:26:54
Android RecyclerView 实现快速滚动的示例代码
2023-02-17 05:32:50
springboot集成fastDfs过程代码实例
2023-02-21 19:42:20
详解maven配置多仓库的方法示例
2021-06-10 14:13:22
GateWay动态路由与负载均衡详细介绍
2022-02-10 15:12:29
SpringBoot集成内存数据库H2的实践
2023-03-20 22:44:34
以Java Web项目为例浅谈前后端分离开发模式
2023-02-14 23:00:42
使用FeignClient设置动态Url
2022-07-04 05:55:39
基于集合的子集与集合的全排列的相关问题
2023-09-23 07:03:46
C# Dynamic关键字之:dynamic为什么比反射快的详解
2021-06-24 04:22:35
解决RestTemplate 请求url中包含百分号 会被转义成25的问题
2022-11-01 22:59:51
Mybatis注解实现多数据源读写分离详解
2021-12-15 21:44:16
JAVA线程池原理实例详解
2021-10-01 17:59:01
基于WPF实现简单放大镜效果
2022-02-15 23:19:12
Java中File文件操作类的基础用法
2022-09-28 14:37:03
Java编程实现获取当前代码行行号的方法示例
2021-06-28 06:51:14
Fluent Mybatis实际开发中的优势对比
2022-07-09 14:29:34
PowerShell 定时执行.Net(C#)程序的方法
2023-07-09 14:10:39
Java开发工具IntelliJ IDEA安装图解
2022-06-14 02:30:20