zoukankan      html  css  js  c++  java
  • Java 定时任务

    import java.util.Calendar;
    import java.util.Date;
    import java.util.Timer;
    import java.util.TimerTask;
    
    public class TestTime {
    
     //时间间隔
     private static final long PERIOD_DAY =  60 * 60 *24 *1000;
     
     public void dd() {
      Calendar calendar = Calendar.getInstance(); 
           
      /*** 定制每日2:00执行方法 ***/
    
      calendar.set(Calendar.HOUR_OF_DAY, 17);
      calendar.set(Calendar.MINUTE, 15);
      calendar.set(Calendar.SECOND, 59);
      
      Date date=calendar.getTime(); //第一次执行定时任务的时间
      
      //如果第一次执行定时任务的时间 小于 当前的时间
      //此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。
      if (date.before(new Date())) {
          date = this.addDay(date, 1);
      }
      
      Timer timer = new Timer();
      
      TimerTask  task = new TimerTask() {
     
     @Override
     public void run() {
      // TODO Auto-generated method stub
      System.out.println("fdsafsafa");
     }
    };
      //安排指定的任务在指定的时间开始进行重复的固定延迟执行。
      timer.schedule(task,date,PERIOD_DAY);
     }
     
     
     public void cc() {
       Calendar calendar = Calendar.getInstance(); 
            
       /*** 定制每日2:00执行方法 ***/
    
       calendar.set(Calendar.HOUR_OF_DAY, 17);
       calendar.set(Calendar.MINUTE, 15);
       calendar.set(Calendar.SECOND, 58);
       
       Date date=calendar.getTime(); //第一次执行定时任务的时间
       
       //如果第一次执行定时任务的时间 小于 当前的时间
       //此时要在 第一次执行定时任务的时间 加一天,以便此任务在下个时间点执行。如果不加一天,任务会立即执行。
       if (date.before(new Date())) {
           date = this.addDay(date, 1);
       }
       
       Timer timer = new Timer();
       
       TimerTask  task = new TimerTask() {
      
      @Override
      public void run() {
       // TODO Auto-generated method stub
       System.out.println("vv");
      }
     };
       //安排指定的任务在指定的时间开始进行重复的固定延迟执行。
       timer.schedule(task,date,PERIOD_DAY);
      }
    
     // 增加或减少天数
     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 static void main(String arg[]){
      TestTime tt =  new TestTime();
      tt.dd();
      tt.cc();
     }
    }
    
     

    .

  • 相关阅读:
    【数据库】事务,ACID,CAP和一致性
    线程,进程。多进程,多线程。并发,并行的区别
    mysql 集群 数据同步
    如何读取一个表的表类型,以及读取一个表中字段的类型.
    网络攻击技术开篇——SQL Injection
    MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?
    程序员找工作那些事(一)幸存者偏差
    程序员
    preg_replace的一些细节
    HDU 1258 Sum It Up(dfs 巧妙去重)
  • 原文地址:https://www.cnblogs.com/cha1r/p/3499804.html
Copyright © 2011-2022 走看看