Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从日期开始计算星期几_Java_Localdate - Fatal编程技术网

Java 从日期开始计算星期几

Java 从日期开始计算星期几,java,localdate,Java,Localdate,我的程序有问题,我必须在其中插入一个随机日期(dd/MM/yyyy),如果是星期五或星期六,它应该打印出“聚会时间到了”。我把日期插入星期五或星期六,但它仍然打印出“你应该学习”。有人能帮忙吗 Scanner scanner = new Scanner(System.in); String input = scanner.nextLine(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyy

我的程序有问题,我必须在其中插入一个随机日期(dd/MM/yyyy),如果是星期五或星期六,它应该打印出“聚会时间到了”。我把日期插入星期五或星期六,但它仍然打印出“你应该学习”。有人能帮忙吗

Scanner scanner = new Scanner(System.in);
    String input = scanner.nextLine();
    DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy");
    LocalDate date = LocalDate.parse(input, formatter);
    System.out.println(date.getDayOfWeek().name());

    if (date.getDayOfWeek().equals("FRIDAY")) {
        System.out.println("Time for party, because it is: " + date.getDayOfWeek());
    }
    else if (date.getDayOfWeek().equals("SATURDAY"))
        System.out.println("Time for party, because it is: " + date.getDayOfWeek());
    else {
        System.out.println("You should study! It is: " + date.getDayOfWeek());
    }

您正在比较一个
DayOfWeek
实例和一个
String
实例,因此它们永远不会相等,因为它们是不同的类型

一种解决方案是在调用equals之前调用
toString

if (date.getDayOfWeek().toString().equals("FRIDAY")){...}
或更好地使用:

if (date.getDayOfWeek() == DayOfWeek.FRIDAY) {...}

您正在比较一个
DayOfWeek
实例和一个
String
实例,因此它们永远不会相等,因为它们是不同的类型

一种解决方案是在调用equals之前调用
toString

if (date.getDayOfWeek().toString().equals("FRIDAY")){...}
或更好地使用:

if (date.getDayOfWeek() == DayOfWeek.FRIDAY) {...}

LocalDate.getDayOfWeek
返回类型为
DayOfWeek
的枚举。但您正在将字符串与枚举进行比较

你必须这样做

date.getDayOfWeek() == DayOfWeek.FRIDAY

LocalDate.getDayOfWeek
返回类型为
DayOfWeek
的枚举。但您正在将字符串与枚举进行比较

你必须这样做

date.getDayOfWeek() == DayOfWeek.FRIDAY

您应该将字符串值替换为枚举类型DayOfWeek.FRIDAYDayOfWeek.SATURDAY。当您将字符串与枚举进行比较时

if (date.getDayOfWeek().equals(DayOfWeek.FRIDAY)) {
                System.out.println("Time for party, because it is: " + date.getDayOfWeek());
            }
            else if (date.getDayOfWeek().equals(DayOfWeek.SATURDAY))
                System.out.println("Time for party, because it is: " + date.getDayOfWeek());
            else {
                System.out.println("You should study! It is: " + date.getDayOfWeek());
            }

您应该将字符串值替换为枚举类型DayOfWeek.FRIDAYDayOfWeek.SATURDAY。当您将字符串与枚举进行比较时

if (date.getDayOfWeek().equals(DayOfWeek.FRIDAY)) {
                System.out.println("Time for party, because it is: " + date.getDayOfWeek());
            }
            else if (date.getDayOfWeek().equals(DayOfWeek.SATURDAY))
                System.out.println("Time for party, because it is: " + date.getDayOfWeek());
            else {
                System.out.println("You should study! It is: " + date.getDayOfWeek());
            }


2018年6月9日对我不起作用。2018年6月9日对我不起作用。非常感谢!成功了。是否有方法将“FRIDAY”打印为“FRIDAY”?字符串day=date.getDayOfWeek().toString().toLowerCase().substring(0,1).toUpperCase()+“”+date.getDayOfWeek().toString().toLowerCase().substring(1);是的,你可以在这里问。我是说,我可以在skype里问你吗?对不起。我忘了。非常感谢!成功了。是否有方法将“FRIDAY”打印为“FRIDAY”?字符串day=date.getDayOfWeek().toString().toLowerCase().substring(0,1).toUpperCase()+“”+date.getDayOfWeek().toString().toLowerCase().substring(1);是的,你可以在这里问。我是说,我可以在skype里问你吗?对不起。我忘了。谢谢你的评论。我使用了if(date.getDayOfWeek().equals(DayOfWeek.FRIDAY)){…}并且仍然有效。但是有没有办法把星期五打印成星期五呢?为什么不把打印语句改成
System.out.println(“派对时间,因为现在是星期五”)
当控件进入
if
语句时,您肯定知道今天是星期五。对我来说这似乎是最简单的解决方案…@zaro如果你需要
Friday
你可以做
date.getDayOfWeek().getDisplayName(TextStyle.FULL,Locale.ENGLISH)
我是按照Gaurav Srivastav的方式做的,尽管我是一个初学者,但我不知道很多方法以及它们的实际用途。@zaro如果你想了解更多关于这些方法的信息,你可以阅读包括或其他部分的感谢评论。我使用了if(date.getDayOfWeek().equals(DayOfWeek.FRIDAY)){…}并且仍然有效。但是有没有办法把星期五打印成星期五呢?为什么不把打印语句改成
System.out.println(“派对时间,因为现在是星期五”)
当控件进入
if
语句时,您肯定知道今天是星期五。对我来说这似乎是最简单的解决方案…@zaro如果你需要
Friday
你可以做
date.getDayOfWeek().getDisplayName(TextStyle.FULL,Locale.ENGLISH)
我是按照Gaurav Srivastav的方式做的,即使我是一个初学者,我不知道很多方法和它们的实际用途。@zaro如果你想知道更多关于这些方法的信息,你可以阅读本书的包括或其他部分