查看DAY_OF_WEEK是否在星期一和星期五之间

我正在尝试创建一个方法来检查“今天”是否在星期一到星期五之间。为此,我在实际日期得到了这条线。之后,我用日期(星期一,星期二,星期天,星期四和星期五)填充数组列表。现在,当我检查实际的一天是否在我的ArrayList中时,我设置了其他我设置的。我今天和昨天都尝试了该方法,但它始终将布尔值设置为false。'int day = Calendar.DAY_OF_WEEK;'boolean DAY = trueboolean 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;
                }

答案 1

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

Java保证(在1.5中)(至少在1.8之前保持不变)通过的值是连续的(1到7),因此检查范围很简单。SUNDAYSATURDAY

但是,不是星期几,而是要传递给 getter 以检索星期几的字段编号(值为 7)。唯一与实际日期匹配的时间是在星期六。DAY_OF_WEEKCalendar.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));

在此之后,当且仅当星期一到星期五(包括星期一)的那一天时,情况才会如此。isWeekdaymyDate


答案 2

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


推荐