获得一个日期所在的周的星期几的日期

网络上找了个例子有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());
  
 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值