我问如何在Java中检测日期是在本周还是下周?但答案令人困惑,所以现在我想如果我能找到过去的星期天和即将到来的星期日,那么这一周中的任何一天都是本周,而在即将到来的星期日和星期日之间的任何一天都是下周,我是否正确?
所以我的新问题是:如何在Java中过去的星期天和即将到来的星期天?
我在JUnit测试中有以下代码,这似乎在上周工作失败了本周:
Calendar cal = Calendar.getInstance();
cal.set(2011, Calendar.JULY, 12);
cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY); // push the date to 15
System.out.println(cal.get(Calendar.DATE));
Run Code Online (Sandbox Code Playgroud)
正如您可能从我的评论中推断出的那样,因为12日是星期二,所以在将DAY_OF_WEEK设置为星期五后,我预计日期为15.但是,打印的值为22,导致测试失败.
但是,如果我按如下方式更改代码,并添加一个额外的调用来获取:
Calendar cal = Calendar.getInstance();
cal.set(2011, Calendar.JULY, 12);
System.out.println(cal.get(Calendar.DATE));
cal.set(Calendar.DAY_OF_WEEK, Calendar.FRIDAY); // push the date to 15
System.out.println(cal.get(Calendar.DATE));
Run Code Online (Sandbox Code Playgroud)
我得到了我期望的输出,12和15.
有人可以解释一下发生了什么,为什么这个测试上周有效?