【发布时间】:2011-07-06 15:46:42
【问题描述】:
首先,非常感谢人们提供的任何帮助!
好的,所以我在这里有这个循环,我似乎遇到了 if 语句的问题。
Eclipse 告诉我下面的查询部分和“else”中的代码是“死代码”:
|| calDateOfDay.DAY_OF_WEEK == Calendar.SUNDAY
但我不知道为什么。
此外,当它执行时,它总是执行“if”语句中的代码,这(据我的理解)意味着每天都是星期六。但是我知道这些日子有正确的价值(肯定有被检查的日子不是星期六)。我知道这一点,因为我已经通过 Eclipse 中的代码进行了调试,并一一检查了日期的值。
老实说,我什至试图解释它都感到困惑! :S
我希望代码做的是:
- 查看它获得的每一天(一个月的价值,因月份而异),并检查这一天是星期六还是星期日。
- 如果是周六或周日,我希望它把一天的“类型”设置为周末,如果不是,我希望它把一天的“类型”设置为工作日。
基本上就是这样。
for (DayEntry dayEntry : daySet){
//day value to be filled
Day day = new Day();
Calendar calDateOfDay = new GregorianCalendar();
//set the date of the day
calDateOfDay.setTime(dayEntry.getDateOfDay());
day.setDate(calDateOfDay);
//set the hours of the day
day.setWorkHours(dayEntry.getHours());
if (Calendar.DAY_OF_WEEK == Calendar.SATURDAY || Calendar.DAY_OF_WEEK == Calendar.SUNDAY ){
day.setType(DayType.WEEK_END);
}else{
day.setType(DayType.WEEK_DAY);
}
//add the day to the week
week.addDay(day);
}
现在,我以上述方式编写代码的原因是因为当我将其编写如下时,Eclipse 告诉我应该以静态方式访问静态变量 DAY_OF_WEEK,所以我也是不确定这是否会导致问题。
for (DayEntry dayEntry : daySet){
//day value to be filled
Day day = new Day();
Calendar calDateOfDay = new GregorianCalendar();
//set the date of the day
calDateOfDay.setTime(dayEntry.getDateOfDay());
day.setDate(calDateOfDay);
//set the hours of the day
day.setWorkHours(dayEntry.getHours());
if (calDateOfDay.DAY_OF_WEEK == Calendar.SATURDAY || calDateOfDay.DAY_OF_WEEK == Calendar.SUNDAY ){
day.setType(DayType.WEEK_END);
}else{
day.setType(DayType.WEEK_DAY);
}
//add the day to the week
week.addDay(day);
}
【问题讨论】:
标签: java date loops calendar if-statement