Java 从日期开始计算星期几
我的程序有问题,我必须在其中插入一个随机日期(dd/MM/yyyy),如果是星期五或星期六,它应该打印出“聚会时间到了”。我把日期插入星期五或星期六,但它仍然打印出“你应该学习”。有人能帮忙吗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
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.FRIDAY或DayOfWeek.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.FRIDAY或DayOfWeek.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如果你想知道更多关于这些方法的信息,你可以阅读本书的包括或其他部分