工具:java定时器

定时器

<–直接上代码–>

package utils;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

public class timeTest {
	
	/**
	 * 定时器
	 */
	static int count = 0;
	public static void showTimer() {
		TimerTask task = new TimerTask() {
			@Override
			public void run() {
				++count;
				System.out.println("时间=" + new Date() + " 执行了" + count + "次"); // 1次
			}
		};

		// 设置执行时间
		Calendar calendar = Calendar.getInstance();
		int year = calendar.get(Calendar.YEAR);
		int month = calendar.get(Calendar.MONTH);
		int day = calendar.get(Calendar.DAY_OF_MONTH);// 每天
		// 定制每天的21:09:00执行,
		calendar.set(year, month, day, 10, 26, 30);
		Date date = calendar.getTime();
		Timer timer = new Timer();

		// 每天的date时刻执行task,每隔2秒重复执行
		//int period = 2 * 1000;
		//timer.schedule(task, date, period);
		// 每天的date时刻执行task, 仅执行一次
		 timer.schedule(task, date);
	}
	
	/**
	 * 固定格式比较固定时间是否在时间区域内
	 */
	public static void timeVS() {

		String format = "HH:mm:ss";
		SimpleDateFormat sf = new SimpleDateFormat("HH:mm:ss");
		String now = sf.format(new Date().getTime());
		Date nowTime;
		try {
			nowTime = new SimpleDateFormat(format).parse(now);
			Date startTime = new SimpleDateFormat(format).parse("09:00:00");
			Date endTime = new SimpleDateFormat(format).parse("17:00:00");
			if (isEffectiveDate(nowTime, startTime, endTime)) {
				System.out.println("系统时间在早上9点到下午17点之间.");
			} else {
				System.out.println("系统时间不在早上9点到下午17点之间.");
			}
		} catch (java.text.ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * 判断当前时间是否在[startTime, endTime]区间,注意时间格式要一致
	 * 
	 * @param nowTime
	 *            当前时间
	 * @param startTime
	 *            开始时间
	 * @param endTime
	 *            结束时间
	 * @return
	 * @author jqlin
	 */
	public static boolean isEffectiveDate(Date nowTime, Date startTime, Date endTime) {
		if (nowTime.getTime() == startTime.getTime() || nowTime.getTime() == endTime.getTime()) {
			return true;
		}

		Calendar date = Calendar.getInstance();
		date.setTime(nowTime);

		Calendar begin = Calendar.getInstance();
		begin.setTime(startTime);

		Calendar end = Calendar.getInstance();
		end.setTime(endTime);

		if (date.after(begin) && date.before(end)) {
			return true;
		} else {
			return false;
		}
	}

	public static void main(String[] args) {
		showTimer();
		timeVS();
	}
}

猜你喜欢

转载自blog.csdn.net/weixin_42402326/article/details/90170053