leehove的gravatar头像
leehove 2015-03-18 14:59:24

Java Spring定时器Demo, 可自动跳过节假日

Spring定时器注解方式很方便,

下面的例子里可以自动跳过节假日执行,

并且含有几个时间工具方法:

计算是否超过h小时,

判断是否是工作日,

计算指定时间段内有几个非工作日

(有注释)

/**
     * 计算时间段内有几天休息天
     * 与"休息日列表"有关,该列表必须涵盖此时间段 begin ~ end
     * @param begin
     * @param end
     */
    private int countPlayday(Date begin, Date end){
        
        int num = 0;
        
        Calendar calendar = Calendar.getInstance();
        calendar.clear();
        
        calendar.setTime(begin);
        long beginMillis = calendar.getTimeInMillis();
        
        calendar.setTime(end);
        long endMillis = calendar.getTimeInMillis();
        
        if(beginMillis <= endMillis){
            
            long millis = beginMillis;
            long onedayMillis = 24 * 60 * 60 * 1000; //1天的毫秒数
            
            while(true){
                
                calendar.setTimeInMillis(millis);
                if(!isWorkday(calendar.getTime())){ //非工作日
                    num ++;
                }
                
                millis = millis + onedayMillis;  //下一天
                if(millis/(60*1000) > endMillis/(60*1000)){ //精确到分
                    break;
                }
            }
        }
        return num;
    }


最代码官方编辑于2015-3-19 22:51:28


打赏

文件名:myTask.java,文件大小:5.204K 下载
最代码最近下载分享源代码列表最近下载
nulixuexiing  LV3 2023年8月31日
kobemvp60  LV2 2022年6月22日
哇哦好代码  LV1 2022年1月15日
wasd1624081287  LV3 2021年11月14日
LikH.  LV2 2021年5月31日
风兮水文天下  LV3 2021年5月28日
老干妈说她13香  LV1 2021年1月2日
xluser  LV2 2020年9月29日
kfq33122  LV4 2020年9月9日
baihongdoudou  LV5 2020年8月20日
最代码最近浏览分享源代码列表最近浏览
nulixuexiing  LV3 2023年8月31日
马克思 2022年12月5日
暂无贡献等级
dawang  LV2 2022年8月23日
kobemvp60  LV2 2022年6月22日
npc也有忧伤  LV3 2022年3月27日
哇哦好代码  LV1 2022年1月15日
Hachi6  LV13 2021年12月21日
lyws1986  LV17 2021年12月16日
wasd1624081287  LV3 2021年11月14日
w1073378859 2021年9月17日
暂无贡献等级
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友