⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yeariterator.java

📁 这是我自己参考资料写了一个java定时器
💻 JAVA
字号:
package dark.timer;
import org.tiling.scheduling.ScheduleIterator;

import java.util.Calendar;
import java.util.Date;

/**
 * A DailyIterator class returns a sequence of dates on subsequent days
 * representing the same time each day.
 */
/**
 * DailyIterator 实现了 ScheduleIterator,这是一个将 SchedulerTask 的计划执行时间
 * 指定为一系列 java.util.Date 对象的接口。然后 next() 方法按时间先后顺序迭代 Date
 * 对象。返回值 null 会使任务取消(即它再也不会运行)—— 这样的话,试图再次计划将会
 * 抛出一个异常
 * @author darkhe
 */
public class YearIterator implements ScheduleIterator
{
	private final int day_of_year;	
	private final int hour_of_day;
	private final int minute, second;
	private final Calendar calendar = Calendar.getInstance();

	public YearIterator(int day_of_year, int hour, int minute, int second)
	{
		this(day_of_year, hour, minute, second, new Date());
	}

	public YearIterator(
		int day_of_year,
		int hour_of_day,
		int minute,
		int second,
		Date date)
	{
		this.day_of_year = day_of_year;
		this.hour_of_day = hour_of_day;
		this.minute = minute;
		this.second = second;
		calendar.setTime(date);
		calendar.set(Calendar.DAY_OF_YEAR, day_of_year);
		calendar.set(Calendar.HOUR_OF_DAY, hour_of_day);
		calendar.set(Calendar.MINUTE, minute);
		calendar.set(Calendar.SECOND, second);
		calendar.set(Calendar.MILLISECOND, 0);
		if (!calendar.getTime().before(date))
		{
			calendar.add(Calendar.YEAR, -1);
		}
	}

	/**
	 * 返回表示每年同一时间的 Date 对象,
	 */
	public Date next()
	{
		calendar.add(Calendar.YEAR, 1);
		return calendar.getTime();
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -