java实现倒计天数_Java 实现倒计时(由秒计算天、小时、分钟、秒)

这是一个Java程序,用于实现从总秒数开始的倒计时,并将其转换为天、小时、分钟和秒的显示。程序通过初始化数据、重置数据和动态更新计数来实现倒计时功能,输出格式化后的倒计时结果。
摘要由CSDN通过智能技术生成

public class Countdown4 {

private static long day = 0;

private static long hour = 0;

private static long minute = 0;

private static long second = 0;

private static boolean dayNotAlready = false;

private static boolean hourNotAlready = false;

private static boolean minuteNotAlready = false;

private static boolean secondNotAlready = false;

public static void main(String[] args) {

long totalSeconds = 60 * 60 * 24 * 1 + 1;

initData(totalSeconds);

new Timer().schedule(new TimerTask() {

@Override

public void run() {

if (secondNotAlready) {

startCount();

} else {

cancel();

}

}

}, 0, 1000);

}

private static void initData(long totalSeconds) {

resetData();

if (totalSeconds > 0) {

secondNotAlready = true;

second = totalSeconds;

if (second >= 60) {

minuteNotAlready = true;

minute = second / 60;

second = second % 60;

if (minute >= 60) {

hourNotAlready = true;

hour = minute / 60;

minute = minute % 60;

if (hour > 24) {

dayNotAlready = true;

day = hour / 24;

hour = hour % 24;

}

}

}

}

System.out.println("初始化格式化后->" + day + "天" + hour + "小时" + minute

+ "分钟" + second + "秒");

}

private static void resetData() {

day = 0;

hour = 0;

minute = 0;

second = 0;

dayNotAlready = false;

hourNotAlready = false;

minuteNotAlready = false;

secondNotAlready = false;

}

public static void startCount() {

if (secondNotAlready) {

if (second > 0) {

second--;

if (second == 0 && !minuteNotAlready) {

secondNotAlready = false;

}

} else {

if (minuteNotAlready) {

if (minute > 0) {

minute--;

second = 59;

if (minute == 0 && !hourNotAlready) {

minuteNotAlready = false;

}

} else {

if (hourNotAlready) {

if (hour > 0){

hour--;

minute = 59;

second = 59;

if (hour == 0 && !dayNotAlready) {

hourNotAlready = false;

}

} else {

if (dayNotAlready) {

day--;

hour = 23;

minute = 59;

second = 59;

if (day == 0) {

dayNotAlready = false;

}

}

}

}

}

}

}

}

System.out.println("解除禁言倒计时:" + day + "天" + hour + "小时" + minute

+ "分钟" + second + "秒");

}

}

首先,我们需要使用Java GUI库来创建倒计时牌,这里我们选择使用Swing库。接下来,我们可以创建一个JFrame窗口,将倒计时牌放在窗口心。具体实现步骤如下: 1. 创建一个JFrame窗口,设置窗口大小和标题。 ``` JFrame frame = new JFrame("倒计时牌"); frame.setSize(400, 300); ``` 2. 创建一个JPanel面板,并将它添加到JFrame窗口。 ``` JPanel panel = new JPanel(); frame.add(panel); ``` 3. 在面板创建一个JLabel标签,用于显示倒计时天数。 ``` JLabel label = new JLabel("倒计时:0"); panel.add(label); ``` 4. 创建一个计时器,使用Timer类来实现。 ``` Timer timer = new Timer(1000, new ActionListener() { int days = 10; // 倒计时天数 public void actionPerformed(ActionEvent e) { // 每执行一次,更新倒计时天数 days--; label.setText("倒计时:" + days + ""); if (days == 0) { // 倒计时结束,停止计时器 ((Timer)e.getSource()).stop(); } } }); ``` 5. 启动计时器,开始倒计时。 ``` timer.start(); ``` 完整代码如下: ``` import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.Timer; public class CountdownClock { public static void main(String[] args) { // 创建窗口 JFrame frame = new JFrame("倒计时牌"); frame.setSize(400, 300); // 创建面板 JPanel panel = new JPanel(); frame.add(panel); // 创建标签 JLabel label = new JLabel("倒计时:0"); panel.add(label); // 创建计时器 Timer timer = new Timer(1000, new ActionListener() { int days = 10; // 倒计时天数 public void actionPerformed(ActionEvent e) { // 每执行一次,更新倒计时天数 days--; label.setText("倒计时:" + days + ""); if (days == 0) { // 倒计时结束,停止计时器 ((Timer)e.getSource()).stop(); } } }); // 启动计时器 timer.start(); // 显示窗口 frame.setVisible(true); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值