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 下载
最代码最近下载分享源代码列表最近下载
kobemvp60  LV2 6月22日
哇哦好代码  LV1 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日
rayshao  LV5 2020年2月19日
最代码最近浏览分享源代码列表最近浏览
dawang  LV2 8月23日
kobemvp60  LV2 6月22日
npc也有忧伤  LV3 3月27日
哇哦好代码  LV1 1月15日
Hachi6  LV13 2021年12月21日
lyws1986  LV15 2021年12月16日
wasd1624081287  LV3 2021年11月14日
w1073378859 2021年9月17日
暂无贡献等级
清风徐来1024  LV3 2021年5月31日
LikH.  LV2 2021年5月31日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友