天天看点

倒计时器java介绍_JAVA软件工程师-倒计时器

倒计时器java介绍_JAVA软件工程师-倒计时器

使用Java多线程实现倒计时牌

§ 定义

开发一个图形界面的倒计时牌程序,程序通过预先输入的目标时间,动态显示当前时间离目标时间相差的天数,小时数,分钟数和秒数,每秒刷新一次。

§ 说明

1. 该案例主要考察java多线程程序的设计基本方法。

2. 日期数据的处理方式。

3. 实现每秒刷新一次的方法。

package classic3IOAndThread;

import java.util.Calendar;

import java.util.Date;

import java.util.Timer;

import java.util.TimerTask;

import javax.swing.JFrame;

import javax.swing.JLabel;

//Graduate time from java school: 2010-8-19

public class CountDown {

long longTime;

long currentTime;

long distTime;

long day, hour, minutes, seconds;

public CountDown() {

CDown();

}

public void CDown() {

Timer timer = new

Timer();

JFrame jf = new JFrame();

final JLabel jl = new

JLabel();

jf.add(jl);

jf.setVisible(true);

jf.setSize(400, 150);

jf.getDefaultCloseOperation();

timer.schedule(new TimerTask()

{

@Override

public void

run() {

Calendar

cal = Calendar.getInstance();

cal.set(2010,

7, 19, 18, 0, 0);

//

返回历元到指定时间的毫秒数。

longTime

= cal.getTimeInMillis();

//

返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。

currentTime

= new Date().getTime();

distTime

= longTime - currentTime;

day

= ((distTime / 1000) / (3600 * 24));

hour

= ((distTime / 1000) - day * 86400) / 3600;

minutes

= ((distTime / 1000) - day * 86400 - hour * 3600) / 60;

seconds

= (distTime / 1000) - day * 86400 - hour * 3600

-

minutes * 60;

jl.setText(" 达内SD1003班 毕业倒计时" + day + " 天 " + hour + "小时 :" + minutes

+

"分钟 :" + seconds + "秒");

}

}, 0, 1000);

}

public static void main(String[] args) {

new CountDown();

}

}

运行结果: 达内SD1003班 毕业倒计时 102天 20小时:10分钟:10秒。

提示:显示结果每秒自动刷性。