检查DAY_OF_WEEK是否在星期一到星期五之间

时间:2012-04-12 06:08:07

标签: java android error-handling calendar dayofweek

我正在尝试创建一个检查“今天”是否在星期一到星期五之间的方法。为此我得到了这一行'int day = Calendar.DAY_OF_WEEK;'的实际日期。之后我用日期(星期一,星期二,星期四,星期四和星期五)填写一个ArrayList。现在,当我检查实际日期是否在我的ArrayList中时,我设置boolean DAY = true否则我设置boolean DAY = false。我今天和昨天尝试了这个方法,但总是把布尔值设置为假。

我需要更改我的代码有什么用?你会在这里找到代码。

代码

                int day = Calendar.DAY_OF_WEEK;
                ArrayList<Integer> daylist = new ArrayList<Integer>();
                daylist.add(Calendar.MONDAY);
                daylist.add(Calendar.TUESDAY);
                daylist.add(Calendar.WEDNESDAY);
                daylist.add(Calendar.THURSDAY);
                daylist.add(Calendar.FRIDAY);

                if (daylist.contains(day)){
                    DAY = true;
                }else{
                    DAY = false;
                }

5 个答案:

答案 0 :(得分:49)

哇,这就像试图用热核弹头杀死一只蚊子: - )

Java guarantees (in 1.5)(至少保持1.8不变)SUNDAYSATURDAY的值是连续的(1到7)所以这是一个简单的检查问题范围。

但是,DAY_OF_WEEK 不是星期几,它是一个字段编号(值为7)要传递给检索的getter一周中的哪一天。 Calendar.DAY_OF_WEEK本身与实际日期相匹配的唯一时间是星期六。

您可以使用以下代码:

Calendar myDate = Calendar.getInstance(); // set this up however you need it.
int dow = myDate.get (Calendar.DAY_OF_WEEK);
boolean isWeekday = ((dow >= Calendar.MONDAY) && (dow <= Calendar.FRIDAY));

在此之后,当且仅当isWeekday的日期是周一至周五(包括周一)时,myDate才会成立。

答案 1 :(得分:6)

int day = Calendar.DAY_OF_WEEK;应该是

Calendar cal; // The calendar object
....your other code for getting the date goes here....
int day = cal.get(Calendar.DAY_OF_WEEK);

您当前的代码只获取常量Calendar.DAY_OF_WEEK的值。

答案 2 :(得分:3)

我应该为你做这个伎俩。

int day = cal.get(Calendar.DAY_OF_WEEK);
if (day >= Calendar.MONDAY && day <= Calendar.FRIDAY){
    DAY = true;
}else{
    DAY = false;
}

答案 3 :(得分:1)

int day = Calendar.DAY_OF_WEEK;

这里的逻辑被打破了。 DAY_OF_WEEK是一个常量,用于标识我们需要从Calendar实例中检索哪种类型的数据。

您问题的最简单解决方案(因为Calendar.FRIDAY&gt; ...&gt; Calendar.MONDAY)是

Calendar now = Calendar.getInstance();
int day = now.get(Calendar.DAY_OF_WEEK);
if (day >= Calendar.MONDAY && day <= Calendar.FRIDAY)
  // do something

答案 4 :(得分:1)

第一个Calendar.DAY_OF_WEEK是一个整数字段,总是会给你7.你需要创建一个日历的实例,如Calendar cal = Calendar.getInstance();默认情况下,它会以当前时区为您提供当前日期。 然后你可以调用cal.get(Calendar.DAY_OF_WEEK);这将给你在星期天和星期六之间的任何一天

现在你可以检查这样的东西

    if(cal.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY || cal.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) {
         System.out.println("Weekend");
     } else {
        System.out.println("Weekday");
     }

您可以将此逻辑应用于您的问题!!