Во-первых, используйте java .time, современный Java API даты и времени, для работы с датой и временем. Всегда. Класс Date
, который вы использовали (на самом деле неправильно, я вернусь к этому), плохо спроектирован и давно устарел. Никогда не используйте это.
Получение текущих минут
Чтобы получить текущую минуту часа:
int currentMinutes() {
return LocalTime.now(ZoneId.systemDefault()).getMinute();
}
Чтобы прочитать день недели или месяц от пользователя
Также используйте java .time для дней недели и месяцев. Ваш код изобретает колеса. Вы должны предпочесть использовать библиотечные классы и методы, которые уже есть для вас. Например:
System.out.println(" Enter day of week of reminder 1-7");
for (DayOfWeek dow : DayOfWeek.values()) {
System.out.println("" + dow.getValue() + " = " + dow
.getDisplayName(TextStyle.SHORT_STANDALONE, Locale.ENGLISH));
}
int day = input.nextInt();
DayOfWeek dow = DayOfWeek.of(day);
System.out.println("You have chosen " + dow);
Пример взаимодействия:
Enter day of week of reminder 1-7
1 = Mon
2 = Tue
3 = Wed
4 = Thu
5 = Fri
6 = Sat
7 = Sun
2
You have chosen TUESDAY
Большинство методов класса Date устарели по причине
Как я уже говорил Date
плохо спроектирован и давно устарел. Более того, большинство конструкторов и методов класса устарели в Java 1.1 в феврале 1997 года, потому что они работают ненадежно в разных часовых поясах. Поэтому, даже если вы настаивали на использовании Date
(что, я надеюсь, вам не нужно), вы все равно должны держаться подальше от устаревших методов, включая все методы get
, за исключением getTime
(который с начала эпохи преобразуется в миллисекунды). ).
Ссылка
Oracle учебник: Дата и время , объясняющие, как использовать java .time.