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:30Phân tích thời gian từ một chuỗi theo định dạng HH:mm:
LocalTime time = LocalTime.parse("14:30"); // 14:30Chuỗ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");
}Thử thách
DễTạo một phương thức tên là processTime nhận bốn đối số:
- Một chuỗi (
timeStr) theo định dạng "HH:mm" - Một số nguyên (
amount) để cộng hoặc trừ - Một chuỗi (
unit) là "hours" hoặc "minutes" - Một chuỗi (
operation) là "add" hoặc "subtract"
Phương thức cần:
- Phân tích chuỗi thời gian đầu vào
- Thực hiện phép toán được chỉ định
- 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));
}
}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
1Mảng đa chiều
Kiến thức cơ bản về mảng 2DTruy cập phần tử trong mảng 2DVòng lặp lồng nhau với mảng 2DÔn tập về mảng 2DPhép cộng và phép trừ ma trậnMảng không đềuMảng 3D trở lênCác mẫu thường gặp với mảng 2DÔn tập về mảng4HashSet phần 1
HashSet là gì?Thêm một phần tửXóa một phần tửKiểm tra phần tử có tồn tại khôngRỗng và kích thướcXóa và sao chépÔn tập: HashSet10Ngày và giờ
Kiến thức cơ bản về LocalDateCác thao tác với LocalTimeCách dùng LocalDateTimePeriod và DurationĐịnh dạng ngày thángXử lý múi giờ2HashMap phần 1
HashMap là gì?Khai báo HashMapTruy cập giá trịKiểm tra khóa có tồn tạiChỉnh sửa từ điểnÔn tập: HashMapTự luyện tập: Trình biên dịch Java online