java 获取某周的起始和结束日期

public static final Date convertStringToDate(String strDate)
   throws ParseException {
  SimpleDateFormat df = null;
  Date date = null;
  df = new SimpleDateFormat("yyyy-MM-dd");
   try {
     date = df.parse(strDate);
  } catch (ParseException pe) {
   log.error("ParseException: " + pe);
  }
  return (date);
 }


public static Calendar getCalendar(String month, int week) {

        Date newDate = DateUtil.convertStringToDate(month + "-01");
        Calendar caleNew = Calendar.getInstance();
        caleNew.setTime(newDate);
        caleNew.add(Calendar.WEEK_OF_MONTH, week -1 );
        return caleNew;
}


/**
     * 获取某月的第n星期的第一天
     *
     * @param month: 2011-06
     * @param week : 2
     * @return
     */
    public static Date getFirstOfWeek(String month, int week) {

        Calendar myCale = Calendar.getInstance();
        
        try{
            
            GregorianCalendar gc = (GregorianCalendar)getCalendar(month, week ) ; //(GregorianCalendar)Calendar.getInstance();
            
            myCale.setTime(gc.getTime());
            
            myCale.set(Calendar.DATE, gc.get(Calendar.DATE)  - gc.get(Calendar.DAY_OF_WEEK) + 2);

        }catch (Exception e) {
            log.info(e.getMessage());
        }
        return myCale.getTime();
    }

    /**
     * 获取某月的第n星期的最后一天
     *
     * @param month: 2011-06
     * @param week:  2  
     * @return
     */
    public static Date getLastOfWeek(String month, int week) {
        
        Calendar myCale = Calendar.getInstance();
        
        try{
            
            GregorianCalendar gc = (GregorianCalendar)getCalendar(month, week ) ; //(GregorianCalendar)Calendar.getInstance();
            
            myCale.setTime(gc.getTime());
            
            myCale.set(Calendar.DATE, gc.get(Calendar.DATE) + 8  - gc.get(Calendar.DAY_OF_WEEK) );

        }catch (Exception e) {
            log.info(e.getMessage());
        }
        return myCale.getTime();

    }
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值