Menu
CoddyTech

Operacje na LocalTime

Część sekcji Logika i przepływ sterowania ścieżki Java w Coddy. Lekcja 55 z 59.

LocalTime w języku Java reprezentuje godzinę bez daty ani strefy czasowej. Jest przydatny podczas pracy z wartościami określającymi porę dnia, takimi jak godziny otwarcia lub harmonogramy.

Utwórz bieżącą godzinę:

LocalTime now = LocalTime.now();

Utwórz konkretną godzinę:

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

Po wykonaniu powyższego kodu zmienna time zawiera:

14:30

Dodawaj lub odejmuj czas:

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

Przetwórz czas z ciągu znaków w formacie HH:mm:

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

Ciąg znaków, który nie jest prawidłową godziną, na przykład "25:70", powoduje, że parse() zgłasza wyjątek DateTimeParseException, taki sam wyjątek jak LocalDate.parse(). Przechwyć go za pomocą try-catch:

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

Wyzwanie

Łatwy

Utwórz metodę o nazwie processTime, która przyjmuje cztery argumenty:

  1. String (timeStr) w formacie "HH:mm"
  2. Liczbę całkowitą (amount) do dodania lub odjęcia
  3. String (unit) równy "hours" lub "minutes"
  4. String (operation) równy "add" lub "subtract"

Metoda powinna:

  1. Parsować wejściowy ciąg znaków reprezentujący czas
  2. Wykonać określoną operację
  3. Zwrócić sformatowane informacje o wyniku

Zwracane komunikaty powinny być następujące:

  • Jeśli format czasu jest nieprawidłowy: zwróć "Invalid time format"
  • Jeśli jednostka jest nieprawidłowa: zwróć "Invalid unit"
  • Jeśli operacja jest nieprawidłowa: zwróć "Invalid operation"
  • W przypadku powodzenia: zwróć "Original: [time], New: [new_time]"

Spróbuj swoich sił

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) {
        // Wpisz tutaj swój kod
    }
    
    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 iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i przepływ sterowania

Poćwicz samodzielnie: Kompilator Java online