Calendar calendar = Calendar.getInstance();//使用默认时区和语言环境获得一个日历
// 创建Calendar对象
Calendar cal = Calendar.getInstance();
// 设置年
int year = cal.get(Calendar.YEAR);
// 设置月
int month = cal.get(Calendar.MONTH) + 1;
// 设置日
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
int hour = cal.get(Calendar.HOUR);
int minute = cal.get(Calendar.MINUTE);
System.out.print(year + "年" + month + "月" + dayOfMonth + "日" + hour + "点" + minute + "分");
while (true) {
if ((year == 2022) && (month == 12) && (dayOfMonth == 23)
&& (hour == 2) && (minute == 16)) {
System.out.println("女朋友生日快乐");
break;
}
用Calendar定时导致无限循环
你的这个cal定义要放到while里面,不然会一直是同一个值,这边改了一版,加了个sleep,并且改成了24小时制,你可以参考下
while (true) {
// 创建Calendar对象
Calendar cal = Calendar.getInstance();
// 设置年
int year = cal.get(Calendar.YEAR);
// 设置月
int month = cal.get(Calendar.MONTH) + 1;
// 设置日
int dayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
int hourOfDay = cal.get(Calendar.HOUR_OF_DAY);
int minute = cal.get(Calendar.MINUTE);
System.out.println(year + "年" + month + "月" + dayOfMonth + "日" + hourOfDay + "点" + minute + "分");
if ((year == 2022) && (month == 12) && (dayOfMonth == 23)
&& (hourOfDay == 16) && (minute == 10)) {
System.out.println("女朋友生日快乐");
break;
}
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
望采纳
代码如下:
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
int hour = calendar.get(Calendar.HOUR_OF_DAY);
int minute = calendar.get(Calendar.MINUTE);
if ((year == 2022) && (month == 12) && (dayOfMonth == 23)
&& (hour == 2) && (minute == 16)) {
System.out.println("女朋友生日快乐");
timer.cancel(); // 停止计时器
}
}
}, 0, 1000); // 每隔一秒执行一次