package com.medical.util;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
/**
* 每天触发一次任务,实现短信自动发送
*/
public class TimeManagerPerDay {
private static final long PERIOD_DAY = 24 * 60 * 60 * 1000;
private static final long TEST_SEC = 15 * 1000;
public TimeManagerPerDay(){
}
public TimeManagerPerDay(int day){
}
public void timeTig() {
// 使用默认时区和语言环境获得一个日历
Calendar calendar = Calendar.getInstance();
// 设置时间
calendar.set(Calendar.HOUR_OF_DAY, 10);// 小时
calendar.set(Calendar.MINUTE, 42);// 分钟
calendar.set(Calendar.SECOND, 0);// 秒
// 第一次执行任务的时间
Date time = calendar.getTime();
// 如果第一次执行任务的时间早于当前时间,那么第一次执行任务的时间推迟一天
if (time.before(new Date())) {
time = addMinute(time, 2);
}
System.out.println("启动时间:" + time);
// 启动计划
Timer timer = new Timer();
timer.schedule(new TimeTrigger(), time, PERIOD_DAY);
System.out.println("当前时间:" + new Date());
}
// 增加一天
public Date addDay(Date date, int num) {
Calendar startDT = Calendar.getInstance();
startDT.setTime(date);
startDT.add(Calendar.DAY_OF_MONTH, num);
return startDT.getTime();
}
// 增加一分钟
public Date addMinute(Date date, int num) {
System.out.println("增加一分钟");
Calendar startDT = Calendar.getInstance();
startDT.setTime(date);
startDT.add(Calendar.MINUTE, num);
return startDT.getTime();
}
public static void main(String[] args) {
new TimeManagerPerDay().timeTig();
}
}
import java.util.TimerTask;
public class TimeTrigger extends TimerTask{
@Override
public void run() {
System.out.println("时间触发器已经启动");
}
}
转载请注明原文地址: https://ju.6miu.com/read-674955.html