检查日历日期是否是星期日

我想弄清楚如何让我的程序计算一周内的星期日数。

我试过以下的事情:

if (date.DAY_OF_WEEK == date.SUNDAY) { System.out.println("Sunday!"); } 

但它似乎没有用?

当我尝试System.out.Println the date.DAY_OF_WEEK我得到: 7

有谁知道如何检查当前的日历日期是否是星期日?

更新更多信息

  1. 所有日期的日期.DAY_OF_WEEK是一个Calendar对象!

  2. 我确保将Calendar对象date设置为星期日

当我尝试运行date.DAY_OF_MONTH即使它设置为星期日这一天,我获得7的系统输出也是我的回报。

第二次更新到亚历克斯

这或多或少是我的代码

 Calendar startDate = Calendar.getInstance(); startDate.set(2012, 12, 02); if (startDate.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) { System.out.println("true"); }else { System.out.println("FALSE"); } 

 Calendar cal = ...; if (cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) { System.out.println("Sunday!"); } 

无论您使用的是什么Calendar实例, Calendar.DAY_OF_WEEK总是等于7 ( 请参阅此链接 ),它是一个常量,用于与Calendar.get()方法一起使用以检索正确的值。

这是对Calendar.get(Calendar.DAY_OF_WEEK)的调用,它将返回实际的星期几。 此外,您可以在Calendar类中找到有用的值,如Calendar.SUNDAY (以及其他日期和月份),以便您在代码中更加明确,并避免像JANUARY等于0错误。

编辑

就像我说的, Calendar类确实包含有用的常量供您使用。 没有第12个月它们从0开始(见上文),因此DECEMBER是Java Date处理中的第11个月。

 Calendar startDate = Calendar.getInstance(); startDate.set(2012, Calendar.DECEMBER, 02); if (startDate.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) { System.out.println("true"); } else { System.out.println("FALSE"); } 

当然会打印出来。

如果你必须经常使用日期或时间,你可能想尝试使用Joda Time 。

您的代码看起来像这样:

 LocalDate startDate = new LocalDate(2012, 12, 2); int day = startDate.dayOfWeek().get(); // gets the day of the week as integer if (DateTimeConstants.SUNDAY == day) { System.out.println("It's a Sunday!"); } 

您还可以从dayOfWeek()获取文本字符串:

 String dayText = startDate.dayOfWeek().getAsText(); 

将返回字符串“Sunday”。