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. jquery on 动态生成绑定事件

    $(document).on("mouseenter", ".v6-div-kind-ok", function () { alert();});

  2. 庐山真面目之六微服务架构Consul集群、Ocelot网关集群和Nginx版本实现

    庐山真面目之六微服务架构Consul集群.Ocelot网关集群和Nginx版本实现 一.简介      在上一篇文章<庐山真面目之五微服务架构Consul集群.Ocelot网关和Nginx版本实 ...

  3. 第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解

    第8.3节 Python类的__init__方法深入剖析:构造方法与继承详解 一.    引言 上两节介绍了构造方法的语法及参数,说明了构造方法是Python的类创建实例后首先执行的方法,并说明如果类 ...

  4. PyQt(Python+Qt)学习随笔:QDockWidget停靠窗toggleViewAction方法的作用

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt入门学习 老猿Python博文目录 toggleViewAction方法返回一个动作对象,该动作对象通过点 ...

  5. Python的富比较方法__eq__和__ne__之间的关联关系分析

    Python的富比较方法包括__lt__.__gt__.__le__.__ge__.__eq__和__ne__六个方法,分别表示:小于.大于.小于等于.大于等于.等于和不等于,对应的操作运算符为:&l ...

  6. PyQt(Python+Qt)学习随笔:在父窗口中弹出子窗口无法显现的问题

    在学习和测试PyQt相关部件功能的时候,老猿经常是不同的窗口新建一个类,再新建一个Application来使用这个窗口类进行测试. 为了减少应用框架代码的重复开发,老猿决定采用主窗口叠加测试窗口的模式 ...

  7. Android10_原理机制系列_PMS的启动及应用的安装过程

    概述 这里主要介绍 PackageManagerService(简称PMS)的启动 和 一个应用的安装过程.这里只是大致总结,供参考,不少地方同样需要进一步深入了解学习的. 该篇相关代码也是基于And ...

  8. 数据结构——创建链表或树节点的小trick(哑结点)

    一般创建链表时,我们可以创建一个哑结点,来保存头部  * struct ListNode {  *     int val;  *     ListNode *next;  *     ListNod ...

  9. 学习笔记:斜率优化DP

    作为数学渣,先复习一下已知两点\((x_1, y_1)\), \((x_2, y_2)\),怎么求过两点的一次函数的斜率... 待定系数法代入 \(y = kx + b\) 有: \(x_1k + b ...

  10. 题解-Decrease

    [MdOI2020] Decrease 古老的博文. 今天巨佬团队 \(\texttt{luogu}\) 公开赛中的第三题,当时我写了好久才想到暴力做法 \(\texttt{42分}\),后来我还很离 ...