• 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();
     }
    }
    
     

    .

  • 相关阅读:
    七类网线 支持10gb/s的速度的计算方法
    Linux 压缩 解压缩 命令相关
    [至顶网] Win2019 发布 LTSC 10年支持期
    安装报错信息 改天找人帮忙看下.
    [学习]仿照cnblog 搭建 Oracle RAC 双节点 困.. 后续做不下去了..
    Windows 作为 openssl server端时的处理
    阿里云构建Kafka单机集群环境
    nginx解决跨域
    让网站永久拥有HTTPS
    ORA-01940: cannot drop a user that is currently connected 问题解析
  • 原文地址:https://www.cnblogs.com/cha1r/p/3499804.html
Copyright © 2020-2023  润新知