就在昨天发了一个通知,这是本程序员最无声的反击
通知大意就是,我们上班来得越来越晚,下班越来越早,现在领导不好发话让我们加班,那就让我们准时到工位上班。也就是在八点半之前,吃完早餐,上完厕所,接完水。从八点半那一分钟开始,就老老实实的在工位上班。
既然在上班期间,不吃早餐,不接水,不上厕所,那么在午饭,午休,下班期间不处理工作的事,也理所应当了。
于是我决定,以后准时在工位上班,当然也一定准时的吃午饭,午睡,下班,绝不用我午饭的时间多写一行代码,绝不用下班时间多写两行代码。
效果图如下
代码如下
import javax.swing.*;
import java.awt.*;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class CountdownPlugin extends JFrame {
private static final long serialVersionUID = 1L;
private JLabel 吃饭Label;
private JLabel 午睡Label;
private JLabel 下班Label;
public static void main(String[] args) {
SwingUtilities.invokeLater(() -> {
CountdownPlugin plugin = new CountdownPlugin();
plugin.setVisible(true);
});
}
public CountdownPlugin() {
// 设置窗口标题
setTitle("打工人的一天");
// 设置窗口大小
setSize(300, 150);
// 设置窗口关闭操作
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 设置布局管理器
setLayout(new FlowLayout());
吃饭Label = new JLabel();
吃饭Label.setFont(new Font("宋体", Font.BOLD, 24));
午睡Label = new JLabel();
午睡Label.setFont(new Font("宋体", Font.BOLD, 24));
下班Label = new JLabel();
下班Label.setFont(new Font("宋体", Font.BOLD, 24));
add(吃饭Label);
add(午睡Label);
add(下班Label);
// 启动倒计时
startCountdown();
}
private void startCountdown() {
Timer timer = new Timer(1000, e -> {
long 吃饭 = calculateRemainingTime(11, 40);
if (吃饭 > 0) {
String timeString = formatTime(吃饭);
吃饭Label.setText("午饭倒计时:" + timeString);
}
long 午睡 = calculateRemainingTime(12, 30);
if (午睡 > 0) {
String timeString = formatTime(午睡);
午睡Label.setText("午睡倒计时:" + timeString);
}
long 下班 = calculateRemainingTime(17, 0);
if (下班 > 0) {
String timeString = formatTime(下班);
下班Label.setText("下班倒计时:" + timeString);
} else {
下班Label.setText("加班使我快乐");
((Timer) e.getSource()).stop();
}
});
timer.start();
}
private long calculateRemainingTime(int hourm, int minute) {
Date now = new Date();
Date endOfWork = getTargetData(hourm, minute);
return endOfWork.getTime() - now.getTime();
}
private Date getTargetData(int hourm, int minute) {
Date now = new Date();
Calendar calendar = Calendar.getInstance();
calendar.setTime(now);
calendar.set(Calendar.HOUR_OF_DAY, hourm);
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
return calendar.getTime();
}
private String formatTime(long time) {
SimpleDateFormat format = new SimpleDateFormat("HH:mm:ss");
format.setTimeZone(java.util.TimeZone.getTimeZone("GMT"));
return format.format(new Date(time));
}
}
需要修改下班时间的看这个方法的参数