写完js倒计时,突然想用java实现倒计时,写了三种实现方式

一:设置时长的倒计时;

二:设置时间戳的倒计时;

三:使用java.util.Timer类实现的时间戳倒计时

代码如下:

 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 }

运行结果:

time1()结果:

time2()结果:

time3()结果:

posted on 2017-05-16 17:49  黑仔002  阅读(60056)  评论(0编辑  收藏  举报