Java笔记-以系统时间为基准15分钟运行一次指定代码

这个思路比较好,在此记录下,在java里面比较鸡肋,毕竟有很多大框架直接完成了工作。

但在C/C++里面这个思路就比较重要了。在此记录下。

 

 

如下代码:

while(true){

    long time = System.currentTimeMillis();
    int is15Min = (int)((time - 1602259200000l) % (15 * 60 * 1000));
    int is1Min = (int)((time - 1602259200000l) % (1 * 60 * 1000));

    //1分钟
    System.out.println("is1Min:" +  is1Min);
    if(is1Min < 10 * 1000){
        
        //TODO 
    }
    
    if((is15Min < 60 * 1000)){
     
        //TODO
    }
    
    //TODO
}

这里的:1602259200000为

先减去上面那个值,在和15分钟取模,当为整点时这个值为0,但越远时,这个值越大。

一般我们可以这样写。当要一分钟调用一次时,is1Min < 10 * 1000。然后里面在sleep 10秒就可以了。

同样如果15分钟,就如上所示。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT1995

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值