• java根据当前日期获取本周和上周的日期区间


    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;
    import java.util.Locale;
    
    public class WeekAndDate {
    
        private static final String YEAR_MONTH_DATE_2 = "yyyyMMdd";
    
        public static SimpleDateFormat getFormat(String format) {
            return new SimpleDateFormat(format);
        }
    
        /**
         * 获取上周周几的日期,默认一周从周日开始
         *
         * @param dayOfWeek
         * @param weekOffset
         * @return
         */
        public static Date getDayOfWeek(int dayOfWeek, int weekOffset) {
            return getDayOfWeek(Calendar.SUNDAY, dayOfWeek, weekOffset);
        }
    
        /**
         * 获取上(下)周周几的日期
         *
         * @param firstDayOfWeek {@link Calendar} 值范围 SUNDAY,
         *                       MONDAY, TUESDAY,
         *                       WEDNESDAY, THURSDAY,
         *                       FRIDAY, and SATURDAY
         * @param dayOfWeek      {@link Calendar}
         * @param weekOffset     周偏移,上周为-1,本周为0,下周为1,以此类推
         * @return
         */
        public static Date getDayOfWeek(int firstDayOfWeek, int dayOfWeek, int weekOffset) {
            if (dayOfWeek > Calendar.SATURDAY || dayOfWeek < Calendar.SUNDAY) {
                return null;
            }
            if (firstDayOfWeek > Calendar.SATURDAY || firstDayOfWeek < Calendar.SUNDAY) {
                return null;
            }
            Calendar date = Calendar.getInstance(Locale.CHINA);
            date.setFirstDayOfWeek(firstDayOfWeek);
            // 周数减一,即上周
            date.add(Calendar.WEEK_OF_MONTH, weekOffset);
            // 日子设为周几
            date.set(Calendar.DAY_OF_WEEK, dayOfWeek);
            // 时分秒全部置0
            date.set(Calendar.HOUR_OF_DAY, 0);
            date.set(Calendar.MINUTE, 0);
            date.set(Calendar.SECOND, 0);
            date.set(Calendar.MILLISECOND, 0);
            return date.getTime();
        }
    
        public static void main(String[] args) {
    
            // 获取当周开始日期
            System.out.println("当周开始日期" +
                    getFormat(YEAR_MONTH_DATE_2).format(getDayOfWeek(Calendar.SUNDAY, 0)));
            // 获取当周结束日期
            System.out.println("当周结束日期" +
                    getFormat(YEAR_MONTH_DATE_2).format(getDayOfWeek(Calendar.SATURDAY, 0)));
    
            // 获取上周开始日期
            System.out.println("上周开始日期" +
                    getFormat(YEAR_MONTH_DATE_2).format(getDayOfWeek(Calendar.SUNDAY, -1)));
            // 获取上周结束日期
            System.out.println("上周结束日期" +
                    getFormat(YEAR_MONTH_DATE_2).format(getDayOfWeek(Calendar.SATURDAY, -1)));
        }
    
        // 获取有效的开始日期
    //    private String getBeginDate(){
    //
    //    }
    
    
        // 获取日期结束日期,需要再批次范围内
        public String fixTheBeginDate(String batchBeginDate, String weekBeginDate) {
            String beginDate = weekBeginDate;
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
            try {
                Date batchDate = simpleDateFormat.parse(batchBeginDate);
                Date weekDate = simpleDateFormat.parse(weekBeginDate);
                if (weekDate.before(batchDate)) {
                    beginDate = batchBeginDate;
                }
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return beginDate;
        }
    
        // 获取日期结束日期,需要再批次范围内
        public String fixTheEndDate(String batchEndDate, String weekEndDate) {
            String endDate = weekEndDate;
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
            try {
                Date batchDate = simpleDateFormat.parse(batchEndDate);
                Date weekDate = simpleDateFormat.parse(weekEndDate);
                if (weekDate.after(batchDate)) {
                    endDate = batchEndDate;
                }
            } catch (ParseException e) {
                e.printStackTrace();
            }
            return endDate;
        }
    
    
        public void xx() {
            String startDate = "20201113";
            String endDate = "20201114";
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
            try {
                Date date01 = simpleDateFormat.parse(startDate);
                Date date02 = simpleDateFormat.parse(endDate);
                if (date01.before(date02)) {
                    return;
                }
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
    }

  • 相关阅读:
    supOS APP开发者课程练习册
    6个小技巧,帮助职场新人培养项目管理能力
    分销模式为用户解决哪些痛点?
    【0到1学习Unity脚本编程】第一人称视角的角色控制器
    MySQL全解,自顶向下深入解剖,只为诸君掌握MySQL数据库
    Mongodb安装(mac版)
    【GCC】关于 -finput-charset= 和 -fexec-charset= 选项
    【HTML粒子波浪特效】(效果+代码)
    Zookeeper集群 + Kafka集群
    【linux下centos7.9安装docker,docker-composed(root用户)】
  • 原文地址:https://blog.csdn.net/nero_xxx/article/details/132941164