网络上找了个例子有bug,经过了修改就完善了======================================================
/** *bug版 */
public static String getWeek(String sdate, String num) {
// 再转换为时间
Date dd = VeDate.strToDate(sdate);
Calendar c = Calendar.getInstance();
c.setTime(dd);
if (num.equals("1")) // 返回星期一所在的日期
c.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
else if (num.equals("2")) // 返回星期二所在的日期
c.set(Calendar.DAY_OF_WEEK, Calendar.TUESDAY);
else if (num.equals("3")) // 返回星期三所在的日期
c.set(Calendar.DAY_OF_WEEK, Calendar.WEDNESDAY);
else if (num.equals("4")) // 返回星期四所在的日期
c.set(Calendar.DAY_OF_WEEK, Calendar.THURSDAY);
else if (num.equals("5")) // 返回星期五所在的日期
c.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY);
else if (num.equals("6")) // 返回星期六所在的日期
c.set(Calendar.DAY_OF_WEEK, Calendar.SATURDAY);
else if (num.equals("0")) // 返回星期日所在的日期
c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
return new SimpleDateFormat("yyyy-MM-dd").format(c.getTime());
}======================================================
/** *获得一个日期所在的周的星期几的日期 *修正后版本 */
public static String getWeekdayBytime(String date_str,String num)
{
Calendar _c = Calendar.getInstance();
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
Date _date = formatter.parse(date_str,new ParsePosition(0));
_c.setTime(_date);
int dayofweek = _c.get(Calendar.DAY_OF_WEEK) - 1;
if (dayofweek == 0)
dayofweek = 7;
if (num.equals("1")) // 返回星期一所在的日期
_c.add(Calendar.DATE, -dayofweek + 1);
else if (num.equals("2")) // 返回星期二所在的日期
_c.add(Calendar.DATE, -dayofweek + 2);
else if (num.equals("3")) // 返回星期三所在的日期
_c.add(Calendar.DATE, -dayofweek + 3);
else if (num.equals("4")) // 返回星期四所在的日期
_c.add(Calendar.DATE, -dayofweek + 4);
else if (num.equals("5")) // 返回星期五所在的日期
_c.add(Calendar.DATE, -dayofweek + 5);
else if (num.equals("6")) // 返回星期六所在的日期
_c.add(Calendar.DATE, -dayofweek + 6);
else if (num.equals("7")) // 返回星期日所在的日期
_c.add(Calendar.DATE, -dayofweek + 7);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(_c.getTime());
}