【问题标题】:Java/Android Calendar, add 1 week on SundaysJava/Android 日历,周日增加 1 周
【发布时间】:2014-07-21 17:42:50
【问题描述】:

好的,所以我的代码一直运行良好,直到星期天。

我正在开发一个使用日历实用程序分配的应用程序,因此它以我认为的方式运行对我来说很重要!问题:

    import java.util.Calendar;

    ...

    Calendar test = Calendar.getInstance();

    test.setFirstDayOfWeek(Calendar.MONDAY);

    Log.e("WEEEK TEST:", ""+ test.get(Calendar.WEEK_OF_YEAR));

    test.add(Calendar.WEEK_OF_YEAR, 1);

    Log.e("WEEEK TEST:", ""+ test.get(Calendar.WEEK_OF_YEAR));

输出这个:

     06-01 14:04:07.636  12005-12005/test.app E/WEEEK TEST:﹕ 23
     06-01 14:04:07.636  12005-12005/test.app E/WEEEK TEST:﹕ 23

这怎么可能发生,我该如何解决?

【问题讨论】:

  • 您的设备日期和时间是否正确?你今天做了那个测试吗?
  • 是的,我今天测试了它,但我认为我的手机配置方式并不重要,因为我要添加一周,无论我手机上的日期是什么,它都应该添加一周。不应该吗?这周怎么可能是 23 周,一周后又是 23 周?
  • 我发现了一个“hack”:在 setFirstDayOfWeek() 之后使用日历之前,必须先添加 -1,然后添加 1 周。
  • 然后,你必须解释你的hack作为答案。这是一个黑客,但它仍然是一个解决方案。 :D

标签: android calendar java.util.calendar


【解决方案1】:
Calendar test = Calendar.getInstance();
test.add(Calendar.WEEK_OF_YEAR, -1);
test.add(Calendar.WEEK_OF_YEAR, 1);
test.setFirstDayOfWeek(Calendar.MONDAY);

现在“测试”应该可以正常工作了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    相关资源
    最近更新 更多