每周都是星期一到星期日。不管今天是星期几,我想得到上个星期周日的日期,弄个半天没弄出来,谁弄过这东西?告诉我下,谢谢,很急!!!

解决方案 »

  1.   

    第一个星期
    Calendar 使用两个参数定义了特定于语言环境的 7 天制星期:星期的第一天和第一个星期中的最小一天(从 1 到 7)。这些数字取自构造 Calendar 时的语言环境资源数据。还可以通过为其设置值的方法来显式地指定它们。 
    在设置或获得 WEEK_OF_MONTH 或 WEEK_OF_YEAR 字段时,Calendar 必须确定一个月或一年的第一个星期,以此作为参考点。一个月或一年的第一个星期被确定为开始于 getFirstDayOfWeek() 的最早七天,它最少包含那一个月或一年的 getMinimalDaysInFirstWeek() 天数。第一个星期之前的各星期编号为 ...、-1、0;之后的星期编号为 2、3、...。注意,get() 返回的标准化编号方式可能有所不同。例如,特定 Calendar 子类可能将某一年第 1 个星期之前的那个星期指定为前一年的第 n 个星期。 
      

  2.   

    Calendar c = Calendar.getInstance();
    c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
    c.add(Calendar.WEEK_OF_MONTH, -1);
    System.out.println(c.getTime());仅限于星期天,上星期一就不能这样做了
      

  3.   

    养成查看API的好习惯 :)
    public static void main(String[] args) {
    Calendar c = Calendar.getInstance();
    System.out.println("now date: " + c.getTime());
    // 减去一个星期
    c.add(Calendar.WEEK_OF_MONTH, -1);
    // 上个星期的今天是第几天,星期天是1,所以要减去1
    int d = c.get(Calendar.DAY_OF_WEEK) - 1;
    // 添加余下的天数
    c.add(Calendar.DAY_OF_WEEK, 7 - d);
    System.out.println("last sunday: " + c.getTime());
    }
      

  4.   

    貌似有点问题哦
    c.add(Calendar.WEEK_OF_MONTH, -1);
    改成
    c2.add(Calendar.DAY_OF_WEEK, -1); 还是不对的,貌似少了一天...
      

  5.   

    勘误,漏看了每周从周一开始
        Calendar c = Calendar.getInstance();
        c.setFirstDayOfWeek(Calendar.MONDAY);
        c.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
        c.add(Calendar.WEEK_OF_MONTH, -1);
        System.out.println(c.getTime());
      

  6.   

       这个简单:     
            Calendar cal= Calendar.getInstance();//获得当前日期
         cal.set(Calendar.WEEK_OF_MONTH, cal.WEEK_OF_MONTH-1);//时间设置为上个星期的今天
         cal.set(Calendar.DAY_OF_WEEK, 1);//再设为上个星期的星期天
    得到的cal就是上个星期天的日期了