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

saf*_*ari 19 java error-handling android calendar dayofweek

我正在尝试创建一个方法,检查"今天"是否在星期一到星期五之间.对于这一点,我'int day = Calendar.DAY_OF_WEEK;' 在实际的这一天得到这条线.之后我用日期(星期一,星期二,星期四,星期四和星期五)填写一个ArrayList.现在,当我检查实际的一天是否在我的ArrayList中时,我设置了boolean DAY = true其他我设置boolean DAY = false.我今天和昨天尝试了这个方法,但它始终将布尔值设置为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;
                }
Run Code Online (Sandbox Code Playgroud)

pax*_*blo 52

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

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

但是,DAY_OF_WEEK不是一周的日子,这是一个场号(与值7)传递到吸气剂,以恢复一周的一天.唯一一次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));
Run Code Online (Sandbox Code Playgroud)

在此之后,isWeekday当且仅当myDate周一至周五包括在内时,将是真实的.

  • @likejiujitsu:我怀疑它从一开始,因为除了超级书呆子之外没有人会使用"一周中的第一天"这句话.从篱笆的另一侧想想,我们所有可怜的C编码员都必须在输出日期时不断添加一个`tm_mon` :-)在你的情况下你很容易做`while((今天=(今天%7) )+ 1)!= startingPoint)`但是,是的,你必须考虑一下. (3认同)
  • 哈哈,“这就像试图用热核弹头杀死一只蚊子”,经典。 (3认同)
  • 为什么从1开始?它应该从0开始。这使得执行诸如while((today = ++ today%7)!= startingPoint`这样的表达式变得更加尴尬。 (2认同)

Ken*_*Y-N 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);
Run Code Online (Sandbox Code Playgroud)

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