从日期开始星期几
Take day of week from date
我的程序有问题,我必须在其中插入一个随机日期 (dd/MM/yyyy),如果那天是星期五或星期六,它应该打印出 "It's time for party"。我插入日期为星期五或星期六,但它仍然打印出来 "You should study"。有人可以帮忙吗?
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) {...}
LocalDate.getDayOfWeek
returns DayOfWeek
类型的枚举。但是您正在将 String 与枚举进行比较。
你必须做
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());
}
我的程序有问题,我必须在其中插入一个随机日期 (dd/MM/yyyy),如果那天是星期五或星期六,它应该打印出 "It's time for party"。我插入日期为星期五或星期六,但它仍然打印出来 "You should study"。有人可以帮忙吗?
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) {...}
LocalDate.getDayOfWeek
returns DayOfWeek
类型的枚举。但是您正在将 String 与枚举进行比较。
你必须做
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());
}