Android 5.0前后使用Calendar中方法的区别

我的需求:根据年份,和周数获取指定周数的周一和周日的日期。

public static String getWeek(String year, String num) {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, Integer.parseInt(year));
        int value = Integer.parseInt(num);
        cal.set(Calendar.WEEK_OF_YEAR, value);
        // 1表示周日,2表示周一,7表示周六
        cal.set(Calendar.DAY_OF_WEEK, 2);
        Date date = cal.getTime();
       // 设置为2016年的第10周
        value += 1;
        cal.set(Calendar.WEEK_OF_YEAR, value);
       // 1表示周日,2表示周一,7表示周六
        cal.set(Calendar.DAY_OF_WEEK, 1);
        Date date1 = cal.getTime();
        return date2Month(date) + "/" + date2Date(date) + "~" + date2Month(date1) + "/" + date2Date(date1);
    }

当我手机是Android 5.0以上的手机传入getWeek(2018,24)两个值时,得到的结果是6.11-6.17,是我想要的结果。
但是当手机是Android 5.0以下时,传入相同的值,得到的结果是6.11-6.10。
也就是说代码中的

 value += 1;
  cal.set(Calendar.WEEK_OF_YEAR, value); 

这两句代码没有起作用,我是想要把周数增加1的,但是在Android 5.0以下却没有成功。

阅读 1.7k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题