确定日期是否为工作日/周末 Java

9

我正在尝试让它比较今天是星期几,如果是周末则执行某个操作(目前尚未实现),但如果我输入今天的日期 2016年11月25日 或明天的日期,即2016年11月26日星期六,它仍然只打印出“工作日”。它不起作用,我被卡住了 :/

public static void calcDatePrice(String a, boolean b, double c){
    System.out.println("CALC PRICE METHOD: " + a);
    Double price;
    Date d1 = new Date(a);

    Calendar c1 = Calendar.getInstance();
    c1.setTime(d1);
    System.out.println(c1.get(Calendar.DAY_OF_WEEK));

    if ((c1.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY) 
            || (Calendar.DAY_OF_WEEK == Calendar.SUNDAY)) {  //or sunday   
    System.out.println("WEEKEND PRICE");
    }else {
    System.out.println("WEEKDAY");
    }
}

3
你的 if 语句中忘记写 c1.get,应该是 c1.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY,而不是 Calendar.DAY_OF_WEEK == Calendar.SUNDAY。请修改代码。 - user6073886
1
有些国家的周末不同。也许你会觉得我的方法实现本地化周末很有趣。点击这里了解更多信息。 - Meno Hochschild
请在发布前先搜索 Stack Overflow。 - Basil Bourque
3个回答

21

在您的if语句中,您忘记了星期天的c1.get。 应该像这样:

if (c1.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY || 
    c1.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)

还有,为什么你要发送布尔变量b和双精度浮点数c?它们从未被使用。


对于我还没有编写的一个方法,我想既然它还没有工作,那么计算也没有任何意义。 - Aidan Moore
3
不是所有国家都将星期一至星期五定为工作日。例如,以色列的工作日是星期日至星期四。 - Chris Watts

2
if ((c1.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY)  || (c1.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY)) { 
    System.out.println("WEEKEND PRICE");
} else {
    System.out.println("WEEKDAY");
}

-5
你可以使用 calender.DayofWeek 方法来查找今天是星期几。

Calendar cl = Calendar.getInstance();
c1.setTime(Enter Yor Date);
int day = c.get(Calendar.DAY_OF_WEEK);
if(check day value is 5 or 6)
  {
   // Weekend Coding
  }
Else
{
  // Weekday Coding
}


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接