• 当前时间距离下一个分钟值以0或者5结尾的时间点(单位:毫秒)小于1分钟时,返回下下个以0或5结尾的时间点


    import com.aliyun.openservices.shade.org.apache.commons.lang3.time.DateFormatUtils;
    import com.aliyun.openservices.shade.org.apache.commons.lang3.time.DateUtils;
    import org.junit.Assert;
    
    import java.text.DateFormat;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    
    /**
     * @author wangjie
     */
    public class TimeUtils {
    
        /**
         * 当前时间距离下一个分钟值以0或者5结尾的时间点(单位:毫秒)小于1分钟时,返回下下个以0或5结尾的时间点
         * 反之,返回下个以0或5结尾的时间点,预留一分钟的缓冲时间,避免边界问题造成的误报
         * @return
         */
        public static long getNextTimeEndWith0or5(Date baseTime) {
            Calendar calendar = Calendar.getInstance();
            calendar.setTime(baseTime);
            int minute = calendar.get(Calendar.MINUTE);
            if (minute < 54) {
                int add = minute % 10 < 4 ? 5 - minute % 10 : 10 - minute % 10;
                calendar.add(Calendar.MINUTE,add);
                calendar.set(Calendar.SECOND, 0);
                calendar.set(Calendar.MILLISECOND, 0);
                return calendar.getTime().getTime();
            }
            if (minute < 59) {
                // 当前时间+1小时
                calendar.set(Calendar.MINUTE, 0);
                calendar.set(Calendar.SECOND, 0);
                calendar.set(Calendar.MILLISECOND, 0);
                Date endTime = DateUtils.addHours(calendar.getTime(), 1);
                return endTime.getTime();
            } else {
                // 当前时间+1小时
                calendar.set(Calendar.MINUTE, 5);
                calendar.set(Calendar.SECOND, 0);
                calendar.set(Calendar.MILLISECOND, 0);
                Date endTime = DateUtils.addHours(calendar.getTime(), 1);
                return endTime.getTime();
            }
        }
    
    }
    

      

  • 相关阅读:
    labview dll 崩溃
    java方法01什么是方法?
    java控制流程控制10增强For循环
    Java方法05可变参数
    java流程控制09打印九九乘法表
    Java流程控制12打印三角形及DUG
    Java方法02方法的定义和调用
    Java流程控制08For循环详解
    java流程控制11break、continue、goto
    java方法04命令行传递参数
  • 原文地址:https://www.cnblogs.com/jjfan0327/p/14752110.html
Copyright © 2020-2023  润新知