如何使用Java日历检查今天是否是星期天
我写了几行不能正常工作的代码。为什么?有人能给我解释一下吗如何使用Java日历检查今天是否是星期天,java,date,calendar,Java,Date,Calendar,我写了几行不能正常工作的代码。为什么?有人能给我解释一下吗 Calendar date = Calendar.getInstance(); date.set(2010, 03, 7); if(date.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) System.out.println("OK"); 因为2010年4月7日不是星期天0=一月,1=二月,2=三月 (另外,请注意,您在指定月份[03时使用了八进
Calendar date = Calendar.getInstance();
date.set(2010, 03, 7);
if(date.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)
System.out.println("OK");
因为2010年4月7日不是星期天0=一月,1=二月,2=三月
(另外,请注意,您在指定月份[
03
时使用了八进制,而不是3
。08
是一个无效的八进制数。从零开始计算月份:
date.set(2010, 2, 7);
也不要养成用前导零写数字的习惯。这告诉Java(和许多其他语言)您希望将数字解释为八进制(以8为基数)常量,而不是十进制。可能是因为月份是以0为基础的,所以您将4月7日设置为星期三。月份值是以0为基础的 另外,如果要检查今天(程序运行的日期:)是否为星期日,则无需设置任何内容,因为该方法将根据默认时区中的当前时间返回一个日历对象,并使用默认区域设置:
Calendar date = Calendar.getInstance();
//date.set(2010, 03, 7);
if(date.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)
System.out.println("OK");
为避免出错,您可以使用当月的日历静态值,例如:
date.set(2010, Calendar.MARCH, 7);
这是给Euler 19的吗
如果是这样,这里有一个提示,从1901年到2000年,从第0个月到第11个月,从第1天到第31天,循环,然后询问:
if(date.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY && day==1)
counter++;
对于我来说,这段代码工作正常,请将确切日期设置为毫秒,然后按如下方式尝试:-
GregorianCalendar dt = new GregorianCalendar();
dt.setTimeInMillis(getTimestampDDmmYYYY(date).getTime());
if((dt.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY| dt.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY))
return true;
谢谢,
Prabhat Kumar Kashyapcal.DAY_OF u_周==cal.SATURDAY ||每周的校准日=校准星期六
应该足够好了。我很惊讶还没有人建议使用Joda Time。。。它是处理日期/时间的更好的API。