2015-07-31 6 views
-2

Моя проблема: Мне нужна строка, в которой в начале программы сохраняется имя завтрашнего дня.JAVA: Получить следующий будний день

В принципе, если я запускаю Программу в понедельник, она вызывает метод, а строка имеет значение «Вторник».

Есть ли простой способ сделать это?

+2

Пожалуйста, покажите нам какой-нибудь код. – AKS

+3

Привет, Freund, добро пожаловать в stackoverflow (SO). SO работает отлично, если у вас есть конкретный вопрос ** и ** вы можете показать, что вы уже пытались решить проблему (лучше всего с помощью [MCVE] (http://stackoverflow.com/help/mcve)). Взгляните на [SO Tour] (http://stackoverflow.com/tour) и [Справочный центр] (http://stackoverflow.com/help), чтобы узнать [как задать хорошие вопросы] (http: //stackoverflow.com/help/how-to-ask). –

+0

@harpribot Freund, очевидно, новый, так что, как насчет того, чтобы приветствовать новых участников и помочь им правильно и эффективно использовать SO, вместо того, чтобы потенциально отключить их быстрым ответом. –

ответ

0

Я бы с чем-то вроде этого (Java 8):

LocalDateTime date = LocalDateTime.now(); 
    do { 
     date = date.plusDays(1); 
    } while(date.getDayOfWeek().getValue() >= 5); 
    String nextDayName = date.format(DateTimeFormatter.ofPattern("EEEE")); 

Возможно, выделить критерии приемки даты в отдельный метод для более легких будущих улучшений.

+0

Не используйте 'ordinal()' для получения числового представления DayOfWeek (предполагая, что это означает, что 'getOrdinal()' не существует). Вместо этого используйте ['getValue()'] (https://docs.oracle.com/javase/8/docs/api/java/time/DayOfWeek.html#getValue--). –

+0

Также неясно, хочет ли Фрейнд пропустить выходные или нет. –

+0

@JensHoffman спасибо за отзыв. Я написал этот ответ в соответствии с моим пониманием и для того, чтобы проявить себя до дат API Java 8 – dotvav

1

Если вы используете Java 8 или более поздней версии, вы можете попробовать это с помощью java.time package:

LocalDate date = LocalDate.now().plusDays(1); 
    String dayName = date.getDayOfWeek().toString(); 

См java.time Tutorial.