Menu
CoddyTech

Các thao tác với LocalTime

Thuộc phần Logic và luồng chương trình trong hành trình Java của Coddy. Bài học 55 trên 59.

LocalTime trong Java biểu diễn thời gian không có ngày tháng hoặc múi giờ. Kiểu này hữu ích khi làm việc với các giá trị giờ trong ngày, như giờ mở cửa hoặc lịch trình.

Tạo thời gian hiện tại:

LocalTime now = LocalTime.now();

Tạo một thời điểm cụ thể:

LocalTime time = LocalTime.of(14, 30);
// 14:30 (2:30 chiều)

Sau khi chạy đoạn code trên, time có giá trị:

14:30

Cộng hoặc trừ thời gian:

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

Phân tích thời gian từ một chuỗi theo định dạng HH:mm:

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

Chuỗi không phải thời gian hợp lệ, chẳng hạn như "25:70", khiến parse() ném ra ngoại lệ DateTimeParseException, cùng loại ngoại lệ với LocalDate.parse(). Bắt ngoại lệ này bằng try-catch:

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

Thử thách

Dễ

Tạo một phương thức tên là processTime nhận bốn đối số:

  1. Một chuỗi (timeStr) theo định dạng "HH:mm"
  2. Một số nguyên (amount) để cộng hoặc trừ
  3. Một chuỗi (unit) là "hours" hoặc "minutes"
  4. Một chuỗi (operation) là "add" hoặc "subtract"

Phương thức cần:

  1. Phân tích chuỗi thời gian đầu vào
  2. Thực hiện phép toán được chỉ định
  3. Trả về thông tin đã định dạng về kết quả

Các thông báo trả về phải là:

  • Nếu định dạng thời gian không hợp lệ: trả về "Invalid time format"
  • Nếu đơn vị không hợp lệ: trả về "Invalid unit"
  • Nếu phép toán không hợp lệ: trả về "Invalid operation"
  • Nếu thành công: trả về "Original: [time], New: [new_time]"

Tự làm thử

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) {
        // Viết code của bạn ở đây
    }
    
    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 iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Java online