Menu
CoddyTech

Операции с LocalTime

Часть раздела Логика и управление потоком путешествия по Java на Coddy. Урок 55 из 59.

LocalTime в Java представляет время без даты и часового пояса. Этот класс полезен для работы со значениями времени суток, например с часами работы или расписаниями.

Создать текущее время:

LocalTime now = LocalTime.now();

Создайте конкретное время:

LocalTime time = LocalTime.of(14, 30);
// 14:30 (2:30 PM)

После выполнения приведённого выше кода в time содержится:

14:30

Добавьте или вычтите время:

LocalTime time = LocalTime.of(14, 30);
LocalTime later = time.plusMinutes(45);  // 15:15
LocalTime earlier = time.minusHours(1);  // 13:30

Разберите время из строки в формате HH:mm:

LocalTime time = LocalTime.parse("14:30");  // 14:30

Строка, которая не является допустимым временем, например "25:70", приводит к тому, что parse() выбрасывает DateTimeParseException — то же исключение, что и LocalDate.parse(). Перехвати его с помощью try-catch:

try {
    LocalTime time = LocalTime.parse("25:70");
} catch (DateTimeParseException e) {
    System.out.println("Invalid time format");
}
challenge icon

Задание

Легко

Создай метод с именем processTime, который принимает четыре аргумента:

  1. Строку String (timeStr) в формате "HH:mm"
  2. Целое число (amount) для прибавления или вычитания
  3. Строку String (unit) со значением "hours" или "minutes"
  4. Строку String (operation) со значением "add" или "subtract"

Метод должен:

  1. Разобрать входную строку времени
  2. Выполнить указанную операцию
  3. Вернуть отформатированную информацию о результате

Метод должен возвращать следующие сообщения:

  • Если формат времени некорректен: вернуть "Invalid time format"
  • Если единица измерения некорректна: вернуть "Invalid unit"
  • Если операция некорректна: вернуть "Invalid operation"
  • В случае успеха: вернуть "Original: [time], New: [new_time]"

Попробуйте сами

import java.util.Scanner;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;

public class Main {
    public static String processTime(String timeStr, int amount, String unit, String operation) {
        // Напишите здесь свой код
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String timeStr = scanner.nextLine();
        int amount = Integer.parseInt(scanner.nextLine());
        String unit = scanner.nextLine();
        String operation = scanner.nextLine();
        
        System.out.println(processTime(timeStr, amount, unit, operation));
    }
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком

Потренируйтесь самостоятельно: Онлайн-компилятор Java