java实现循环每天多个时间段定时任务

java实现循环每天多个时间段定时任务,每个时间段运行不同的任务,并且每天自动循环,重启也会自动执行,只需要修改你想定时的时间就行,可根据自己项目具体修改,原创,转载请说明出处。

import java.util.Calendar;
import java.util.Timer;
import java.util.TimerTask;

/**
 * 
 * @author 我爱女神李忠英
 *
 *每天自动循环完成多个时间段不同任务
 *
 */

public class Test {
	
	static long time0 = 0;
	static long time8 = 0;
	static long time10 = 0;
	static long time22 = 0;
	static long nowTime = 0;
	
	public static void main(String[] args) {
		
		//启动一个定时任务
		new Timer("dingshiTask").schedule(new TimerTask() {
	        @Override
	        public void run() {
	        	
	        	nowTime=System.currentTimeMillis();
	        	
				//经过的时间大于24小时,说明已经到了第二天,则自动重新设置
				if(nowTime-time0>=24*60*60*1000){

					/*** 设置【今天】定时任务的时间 ***/
			          Calendar calendar = Calendar.getInstance();           
			          calendar.set(Calendar.HOUR_OF_DAY, 0);//当天0点
			          calendar.set(Calendar.MINUTE, 0);
			          calendar.set(Calendar.SECOND, 0);
			          time0 = calendar.getTimeInMillis();

			          Calendar calendar8 = Calendar.getInstance();
			          calendar8.set(Calendar.HOUR_OF_DAY, 8);//当天8点
			          calendar8.set(Calendar.MINUTE, 0);
			          calendar8.set(Calendar.SECOND, 0);
			          time8 = calendar8.getTimeInMillis();
			          
			          Calendar calendar10 = Calendar.getInstance();
			          calendar10.set(Calendar.HOUR_OF_DAY, 10);//当天10点
			          calendar10.set(Calendar.MINUTE, 0);
			          calendar10.set(Calendar.SECOND, 0);
			          time10 = calendar10.getTimeInMillis();
			          
			          Calendar calendar22 = Calendar.getInstance();
			          calendar22.set(Calendar.HOUR_OF_DAY, 22);//当天22点
			          calendar22.set(Calendar.MINUTE, 0);
			          calendar22.set(Calendar.SECOND, 0);
			          time22 = calendar22.getTimeInMillis();
				}
				
				if(nowTime-time0>0&&nowTime-time8<0){//0点到8点之间

					System.out.println("0-8点,执行这里的任务,要设置执行的次数,自己设置一个flag");
					
				}else if(nowTime-time8>=0&&nowTime-time10<0){//8点到10点之间

					System.out.println("8-10点,执行这里的任务,要设置执行的次数,自己设置一个flag");
					
				}else if(nowTime-time10>=0&&nowTime-time22<0){//10点到22点之间

					System.out.println("10-22点,执行这里的任务,要设置执行的次数,自己设置一个flag");
					
				}else if(nowTime-time22>=0){//22点到0点之间
					
					System.out.println("22-0点,执行这里的任务,要设置执行的次数,自己设置一个flag");
					
				}
	
	        }
	    }, 1000,10000);//前面的第一个参数是1秒钟后开始运行定时任务,后面是每间隔10秒钟去执行一次任务,根据自己需要修改间隔时间

	}

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值