public static String getTimeInterval(Date date){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");//可以方便地修改日期格式
Calendar c = Calendar.getInstance();
c.setTime(date);
//判断要计算的日期是否是周日,如果是则减一天,计算周六的,否则会出问题,计算到下一周去了
int dayWeek = c.get(Calendar.DAY_OF_WEEK); //获得当期日期是一个星期的第几天
if (1 == dayWeek) {
c.add(Calendar.DAY_OF_MONTH,-1);
}
//设置一个星期的第一天,按中国的习惯,一个星期的第一天是星期一
c.setFirstDayOfWeek(Calendar.MONDAY);
//获得当前日期是一个星期的第几天
int day = c.get(Calendar.DAY_OF_WEEK);
//根据日历的规则,给当前日期减去星期几与一个星期第一天的差值
c.add(Calendar.DATE, c.getFirstDayOfWeek()-day);
String imptimeBegin = sdf.format(c.getTime());//所在周星期一的日期
c.add(Calendar.DATE, 6);
String imptimeEnd = sdf.format(c.getTime());//所在周星期日的日期
int mondayPlus = 0;
Calendar cd = Calendar.getInstance();
cd.setTime(date);
// 获得今天是一周的第几天,星期日是第一天,星期二是第二天......
int dayOfWeek = cd.get(Calendar.DAY_OF_WEEK) - 1; // 因为按中国礼拜一作为第一天所以这里减1
if (dayOfWeek == 1) {
} else {
mondayPlus = 1 - dayOfWeek;
}
GregorianCalendar currentDate = new GregorianCalendar();
currentDate.add(GregorianCalendar.DATE, mondayPlus + 7);
Date monday = currentDate.getTime();
String weekNext = sdf.format(monday);
return imptimeBegin+","+weekNext;
}
根据当前日期获得所在周的日期区间(周一和周日日期)
最新推荐文章于 2021-06-13 07:47:44 发布