Взять день недели с даты - PullRequest
0 голосов
/ 09 июня 2018

У меня проблема с моей программой, в которой я должен вставить случайную дату (дд / мм / гггг), и если день пятница или суббота, он должен распечатать «Время вечеринки».Я вставляю даты с пятницы или субботы, но они по-прежнему печатают "Вы должны учиться".Может кто-нибудь помочь?

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());
    }

Ответы [ 3 ]

0 голосов
/ 09 июня 2018

LocalDate.getDayOfWeek возвращает перечисление типа DayOfWeek.Но вы сравниваете строку с перечислением.

Вы должны сделать

date.getDayOfWeek() == DayOfWeek.FRIDAY
0 голосов
/ 09 июня 2018

Вы должны заменить строковое значение на тип перечисления DayOfWeek.FRIDAY или DayOfWeek.SATURDAY .Как вы сравниваете строку с enum.

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());
            }
0 голосов
/ 09 июня 2018

Вы сравниваете экземпляр DayOfWeek с экземпляром String, поэтому они никогда не будут равны, так как они разных типов.

одним из решений является вызов toString до вызова равняется:

if (date.getDayOfWeek().toString().equals("FRIDAY")){...}

или лучше использовать:

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