需求:小花给自己设置了一个高考倒计时。高考的开始时间为:2023年06月07日 上午9:00 。要求展示出距离高考的时间,每秒进行更新。
定义一个Start类用来启动程序
import java.util.Timer;
public class Start {
public static void main(String[] args) {
//创建一个定时器对象
Timer timer = new Timer();
timer.schedule(new TimeTask(),0,1000); //每一秒执行一次new TimeTask()中的run方法
}
}
定义一个TimeTask用于完成需求
import java.time.Duration;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.TimerTask;
public class TimeTask extends TimerTask {
//高考开始时间
private LocalDateTime startTime;
//构造器,对高考的开始时间进行格式化
public TimeTask(){
String s = "2024-06-07 09:00:00";
//定义一个时间格式化器
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
startTime = LocalDateTime.parse(s,dtf);
System.out.println("2024年高考倒计时");
System.out.println("2024年高考时间:2024年06月07日 星期三");
System.out.println("现在距离2024年高考还有");
}
//每一秒执行一次该方法
@Override
public void run() {
//1、拿到当前时间
LocalDateTime now = LocalDateTime.now();
//2、计算当前时间与高考开始时间的差
Duration duration = Duration.between(now, startTime);
//3、将时间差进行格式化后输出
System.out.println(duration.toDays() + "天" + duration.toHoursPart() +
"时" + duration.toMinutesPart() + "分" + duration.toSecondsPart() + "秒");
}
}