java 如何获取 上周一日期,上周末日期,本周一日期。

Map model = new HashMap();
//获取当前系统日期
Calendar cal =Calendar.getInstance();
SimpleDateFormat df = new SimpleDateFormat(DATE_FOMART);

model.put("toDay", df.format(cal.getTime()));

//获取本周一日期
cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
model.put("thisMonday", df.format(cal.getTime()));

//获取上周天日期
cal.set(Calendar.DAY_OF_WEEK, 1);
model.put("lastSunday",df.format(cal.getTime()));

//获取上周一日期
cal.add(Calendar.WEEK_OF_MONTH, -1);
cal.set(Calendar.DAY_OF_WEEK, 2);
model.put("lastMonday",df.format(cal.getTime()));
以上方法当当天日期为周末的时候会出现混乱

var toDay ='2013-09-29';

var lastMonday = '2013-09-23';

var lastSunday ='2013-09-29';

var thisMonday ='2013-09-30';

获取本周一

 public static Date getNowWeekMonday(Date date) {    
            Calendar cal = Calendar.getInstance();    
             cal.setTime(date);    
                  
             cal.add(Calendar.DAY_OF_MONTH, -1); //解决周日会出现 并到下一周的情况    
            cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);    
                 
303            return cal.getTime();    
        }

获取上周一

public static Date getLastWeekMonday(Date date) {    
             Date a = DateUtils.addDays(date, -1);    
            Calendar cal = Calendar.getInstance();    
            cal.setTime(a);    
            cal.add(Calendar.WEEK_OF_YEAR, -1);// 一周    
            cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);    
                  
             return cal.getTime();    
        }

获取上周日

public static Date  getLastWeekSunday(Date date) {    
                 
            Date a = DateUtils.addDays(date, -1);    
           Calendar cal = Calendar.getInstance();    
         cal.setTime(a);    
           cal.set(Calendar.DAY_OF_WEEK, 1);    
                 
          return cal.getTime();    
        }

代码里面有用到 lapache.common-ang包 你需要下载下 就可以使用

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-10-09

没有乱呀,因为缺省时每星期的第一天是星期日,所以你应该先调用

Calendar.setFirstDayOfWeek(Calendar.MONDAY);

把每星期的第一天设为星期一

第2个回答  2013-10-09
那你判断一下当前日期是为周末么
相似回答