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

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

我需要改变我的代码的工作? 你会在这里find代码。

  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; } 

Solutions Collecting From Web of "检查DAY_OF_WEEK是在星期一到星期五之间"

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

Java 保证(在1.5) (不超过1.8 ), SUNDAYSATURDAY的值是连续的(1到7),所以这是一个简单的检查范围的问题。

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

您可以使用如下代码:

 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的一天是周一至周五(含)。

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的值。

这应该对你我假设的伎俩。

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

第一个Calendar.DAY_OF_WEEK是一个整数字段,总是会给你7.你需要创build一个日历的实例,如Calendar Cal = Calendar.getInstance(); 默认情况下,它会为您提供当前时区中的当前date。 然后你可以调用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"); } 

你可以将这个逻辑应用于你的问题!

 int day = Calendar.DAY_OF_WEEK; 

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

你的问题最简单的解决scheme(自Calendar.FRIDAY> …> Calendar.MONDAY)是

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