**训练目标**:掌握Java中LocalDateTime的使用,以及理解其在实际开发中的应用
**需求背景**:秒杀是网上竞拍的一种新方式,指商家在网络平台发布一些超低价格的商品,让所有买家在同一时间抢购的一种销售方式。由于商品价格非常低廉,通常活动时间一到,商品就会被买家抢购一空,有时甚至只用一秒钟,所以该种方式被称为秒杀。在秒杀活动页面往往会有一个倒计时的功能,如下图所示:
|
| ------------------------------------------------------------ |
**需求描述**:请在素材的seckill项目的指定位置补全相关的代码,实现秒杀倒计时的功能!秒杀开始时间为:明天的06时0分0秒。
案例执行效果如下所示:
| ![image-20220124223217185](image/image-20220124223217185.png) |
| ------------------------------------------------------------ |
**实现提示**:
1、在TimeTask类中补全代码
2、在TimeTask的构造方法中初始化秒杀开始时间
3、在TimeTask的run方法中,获取当前系统时间,然后计算当前系统时间与秒杀开始时间相差的毫秒值
4、然后将毫秒值转换成对应的时、分、秒
public class Entry {
public static void main(String[] args) {
// 创建一个定时器对象
Timer timer = new Timer() ;
timer.schedule(new TimeTask(), 0 , 1000); // 每隔1秒执行一次
}
}
public class TimeTask extends TimerTask {
// 定义秒杀开始时间
private LocalDateTime startTime; // 秒杀开始时间
// 构造方法,对秒杀开始时间进行初始化
public TimeTask() {
// 1、初始化开始时间是明天6点钟。
startTime = LocalDateTime.of(2023,11,13, 6, 0,0);
}
@Override
public void run() { // 每一秒执行一次该方法
// 2、获取当前系统的时间点
LocalDateTime now = LocalDateTime.now();
// 3、输出当前倒计时信息。(时间差信息)
Duration duration = Duration.between(now, startTime);
// 4、拿时间信息。
System.out.println(duration.toHoursPart() + ":" + duration.toMinutesPart() + ":" + duration.toSecondsPart());
}
}