java 根据”指定日期“获取上一周和下一周开始与结束日期,获取当前周的开始结束日期

日期获取第一天从本周的周日开始获取:
根据指定日期获取上一周日期:

 public String getLastTimeInterval(Date date){
        @SuppressLint("SimpleDateFormat")
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar1 = Calendar.getInstance();
        Calendar calendar2 = Calendar.getInstance();
        calendar1.setTime(date);
        calendar2.setTime(date);
        int dayOfWeek = calendar1.get(Calendar.DAY_OF_WEEK) - 1;
        if(dayOfWeek <= 0){
            dayOfWeek = 7;
        }
        int offset1 = 1 - dayOfWeek;
        int offset2 = 7 - dayOfWeek;
        calendar1.add(Calendar.DATE, offset1 - 7);
        calendar2.add(Calendar.DATE, offset2 - 7);
        // last Monday
        String lastBeginDate = sdf.format(calendar1.getTime());
        // last Sunday  
        String lastEndDate = sdf.format(calendar2.getTime());
        return lastBeginDate + "," + lastEndDate;
    }

根据指定日期获取下一周日期:

public String getNextTimeInterval(Date date){
        @SuppressLint("SimpleDateFormat")
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar calendar1 = Calendar.getInstance();
        Calendar calendar2 = Calendar.getInstance();
        calendar1.setTime(date);
        calendar2.setTime(date);
        int dayOfWeek = calendar1.get(Calendar.DAY_OF_WEEK) - 1;
        if(dayOfWeek <= 0){
            dayOfWeek = 7;
        }
        int offset1 = 1 - dayOfWeek;
        int offset2 = 7 - dayOfWeek;
        calendar1.add(Calendar.DATE, offset1 + 7);
        calendar2.add(Calendar.DATE, offset2 + 7);
        // last Monday
        String lastBeginDate = sdf.format(calendar1.getTime());
        // last Sunday  
        String lastEndDate = sdf.format(calendar2.getTime());
        return lastBeginDate + "," + lastEndDate;
    }

获取当前周的日期:

 public String getTimeInterval(Date date) {
        @SuppressLint("SimpleDateFormat")
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Calendar cal = Calendar.getInstance();
        cal.setTime(date);
        int dayWeek = cal.get(Calendar.DAY_OF_WEEK);if (1 == dayWeek) {
            cal.add(Calendar.DAY_OF_MONTH, 0);
        }
        cal.setFirstDayOfWeek(Calendar.MONDAY);
        int day = cal.get(Calendar.DAY_OF_WEEK);
        cal.add(Calendar.DATE, cal.getFirstDayOfWeek() - day);
        String imptimeBegin = sdf.format(cal.getTime());
        cal.add(Calendar.DATE, 6);
        String imptimeEnd = sdf.format(cal.getTime());
        return imptimeBegin + "," + imptimeEnd;
    }

取值:

 String yz_time=getTimeInterval(new Date());
 String lastWeekReturnDate = getLastTimeInterval(new Date(2020-1900,10-1,02));//2020-10-02
 String nextWeekReturnDate = getNextTimeInterval(new Date(2020-1900,10-1,02));
Log.e("本周日期",""+yz_time);
Log.e("指定日期获取上周日期",""+lastWeekReturnDate);
Log.e("指定日期获取下周周日期",""+nextWeekReturnDate);

输出形式为:

E/本周日期: 2020-04-06,2020-04-12
E/指定日期获取上周日期: 2020-09-21,2020-09-27
E/指定日期获取下周周日期: 2020-10-05,2020-10-11

你可能感兴趣的:(java 根据”指定日期“获取上一周和下一周开始与结束日期,获取当前周的开始结束日期)