日期获取第一天从本周的周日开始获取:
根据指定日期获取上一周日期:
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