2020-10-15

16:12:16

今天学习了如何实现倒计时控制程序的运行:


 1 package timer;
2
3 import java.util.Calendar;
4 import java.util.Date;
5 import java.util.Timer;
6 import java.util.TimerTask;
7
8 /**
9 * java演示倒计时
10 *
11 */
12 public class TimeTest {
13 public static int time = 60 * 60 * 60;
14 public static Calendar c;
15 public static long endTime;
16 public static Date date;
17 public static long startTime;
18 public static long midTime;
19
20 public static void main(String[] args) {
21 c = Calendar.getInstance();
22 c.set(2017, 4, 17, 0, 0, 0);// 注意月份的设置,0-11表示1-12月
23 // c.set(Calendar.YEAR, 2017);
24 // c.set(Calendar.MONTH, 4);
25 // c.set(Calendar.DAY_OF_MONTH, 17);
26 // c.set(Calendar.HOUR_OF_DAY, 0);
27 // c.set(Calendar.MINUTE, 0);
28 // c.set(Calendar.SECOND, 0);
29 endTime = c.getTimeInMillis();
30 date = new Date();
31 startTime = date.getTime();
32 midTime = (endTime - startTime) / 1000;
33
34 time1();//方式一
35 //time2();// 方式二
36 //time3();//方式三
37 }
38
39 /**
40 * 方式三: 使用java.util.Timer类进行倒计时
41 */
42 private static void time3() {
43 Timer timer = new Timer();
44 timer.schedule(new TimerTask() {
45 public void run() {
46 midTime--;
47 long hh = midTime / 60 / 60 % 60;
48 long mm = midTime / 60 % 60;
49 long ss = midTime % 60;
50 System.out.println("还剩" + hh + "小时" + mm + "分钟" + ss + "秒");
51 }
52 }, 0, 1000);
53 }
54
55 /**
56 * 方式二: 设定时间戳,倒计时
57 */
58 private static void time2() {
59
60 while (midTime > 0) {
61 midTime--;
62 long hh = midTime / 60 / 60 % 60;
63 long mm = midTime / 60 % 60;
64 long ss = midTime % 60;
65 System.out.println("还剩" + hh + "小时" + mm + "分钟" + ss + "秒");
66 try {
67 Thread.sleep(1000);
68
69 } catch (InterruptedException e) {
70 e.printStackTrace();
71 }
72 }
73 }
74
75 /**
76 * 方式一: 给定时长倒计时
77 */
78 private static void time1() {
79 while (time > 0) {
80 time--;
81 try {
82 Thread.sleep(1000);
83 int hh = time / 60 / 60 % 60;
84 int mm = time / 60 % 60;
85 int ss = time % 60;
86 System.out.println("还剩" + hh + "小时" + mm + "分钟" + ss + "秒");
87 } catch (InterruptedException e) {
88 e.printStackTrace();
89 }
90 }
91
92 }
93 }

JavaDailyReports10_15的更多相关文章

随机推荐

  1. Spring Cloud 学习 (二) Ribbon

    负载均衡是指将负载分摊到多个执行单元上,常见的负载均衡有两种方式:一种是独立进程单元,通过负载均衡策略,将请求转发到不同的执行单元上,例如 Ngnix:另一种是将负载均衡逻辑以代码的形式封装到服务消费 ...

  2. PyQt学习随笔:自定义信号连接时报AttributeError: 'PyQt5.QtCore.pyqtSignal' object has no attribute 'connect'

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 如果使用自定义信号,一定要记得信号是类变量,必须在类中定义,不能在实例 ...

  3. 小程序image无法显示图片

    图片路径中有中文 图片地址为http开头,图片只能在调试模式中显示,真机也必须开调试. 图片名称有空格 图片的后缀必须为小写的.png或者.jpg

  4. Scrum 冲刺第七天

    一.每日站立式会议 1.会议内容 1)进行每日工作汇报 张博愉: 昨天已完成的工作:与林梓琦同学完成发帖模块的交接 今日工作计划:完善发帖模块的点赞.上传图片功能 工作中遇到的困难:Mybatis的一 ...

  5. 学习笔记:四边形不等式优化 DP

    定义 & 等价形式 四边形不等式是定义在整数集上的二元函数 \(w(x, y)\). 定义:对于任意 \(a \le b \le c \le d\),满足交叉小于等于包含(即 \(w(a, c ...

  6. 题解-CF677D Vanya and Treasure

    CF677D Vanya and Treasure 有一个 \(n\times m\) 的矩阵 \(a(1\le a_{i,j}\le p)\),求从起点 \((1,1)\) 出发依次遍历值为 \(1 ...

  7. Fisco Bcos学习资料连接

    大牛博客:http://m.blog.csdn.net/sportshark FISCO BCOS学习资料索引;http://kb.bsnbase.com/webdoc/view/Pub4028813 ...

  8. Chrome DevTools — Network -- 转载

    转载地址:https://segmentfault.com/a/1190000008407729 记录网络请求 默认情况下,只要DevTools在开启状态,DevTools会记录所有的网络请求,当然, ...

  9. 看图知Docker

    0.https://www.docker.com/ 1.Why Docker 可参考: https://www.cnblogs.com/kex1n/p/6933039.html https://www ...

  10. Vue高仿网易云网页端源码

      音乐播放器虽然烂大街了,但是作为前端没自己撸一个一直是个遗憾, 而且偶然间发现 pc 端 web 版的网易云音乐做的实在是太简陋了, 社区仿 pc 客户端的网易云也不多见,为了弥补这个遗憾, 就用 ...