检查日历日期是否是星期日
我想弄清楚如何让我的程序计算一周内的星期日数。
我试过以下的事情:
if (date.DAY_OF_WEEK == date.SUNDAY) { System.out.println("Sunday!"); }
但它似乎没有用?
当我尝试System.out.Println the date.DAY_OF_WEEK
我得到: 7
有谁知道如何检查当前的日历日期是否是星期日?
更新更多信息
-
所有日期的日期.DAY_OF_WEEK是一个Calendar对象!
-
我确保将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”。