java通过传入一个指定日期获取该日期所在周的周一的日期,日期格式如:2016-07-30





private
static
void
convertWeekDate(Date time) {




SimpleDateFormat sdf=
new
SimpleDateFormat(
"yyyy-MM-dd"
);
//设置时间格式


Calendar cal = Calendar.getInstance();


cal.setTime(time);


//判断要计算的日期是否是周日,如果是则减一天计算周六的,否则会出问题,计算到下一周去了


int
dayWeek = cal.get(Calendar.DAY_OF_WEEK);
//获得当前日期是一个星期的第几天


if
(
1
== dayWeek) {


cal.add(Calendar.DAY_OF_MONTH, -
1
);


}


System.out.println(
"要计算日期为:"
+sdf.format(cal.getTime()));
//输出要计算日期


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()); //周一时间







}