Kiến thức cơ bản về LocalDate
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 54 trên 59.
LocalDate trong Java biểu thị một ngày không có giờ hoặc múi giờ. Kiểu này dùng để làm việc với các ngày như sinh nhật, ngày lễ hoặc lịch trình.
Tạo ngày hôm nay:
LocalDate today = LocalDate.now();Tạo một ngày cụ thể:
LocalDate date = LocalDate.of(2024, 3, 15);Sau khi chạy đoạn code trên, date chứa: 2024-03-15
Lấy các phần khác nhau của một ngày:
LocalDate date = LocalDate.of(2024, 3, 15);
int year = date.getYear(); // 2024
int month = date.getMonthValue(); // 3
int day = date.getDayOfMonth(); // 15
String dayOfWeek = date.getDayOfWeek().toString(); // "FRIDAY"Phân tích cú pháp một ngày từ String:
LocalDate date = LocalDate.parse("2024-03-15"); // Định dạng: "yyyy-MM-dd"Quan trọng: Nếu định dạng chuỗi không hợp lệ, parse() sẽ ném ra ngoại lệ DateTimeParseException. Hãy dùng try-catch để xử lý:
try {
LocalDate date = LocalDate.parse("invalid-date");
} catch (DateTimeParseException e) {
System.out.println("Invalid date format");
}Cộng hoặc trừ số ngày:
LocalDate date = LocalDate.of(2024, 3, 15);
LocalDate future = date.plusDays(10); // 2024-03-25
LocalDate past = date.minusDays(5); // 2024-03-10Sau khi chạy đoạn code trên:
future: 2024-03-25past: 2024-03-10
Thử thách
DễTạo một phương thức có tên processDate nhận ba đối số:
- Một chuỗi (String) (
dateStr) theo định dạng "yyyy-MM-dd" - Một số nguyên (
days) để cộng hoặc trừ - Một chuỗi (
operation) có giá trị "add" hoặc "subtract"
Phương thức cần:
- Phân tích chuỗi ngày đầu vào
- Cộng hoặc trừ số ngày đã chỉ định
- Trả về thông tin đã định dạng về kết quả
Các thông báo trả về:
- Nếu định dạng ngày không hợp lệ: trả về "Invalid date format"
- Nếu thao tác không hợp lệ: trả về "Invalid operation"
- Nếu thành công: trả về "Original: [date], New: [new_date], Day of week: [day_name]", trong đó [day_name] là thứ trong tuần của ngày mới, viết in hoa (ví dụ:
WEDNESDAY)
Tự làm thử
import java.util.Scanner;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeParseException;
public class Main {
public static String processDate(String dateStr, int days, String operation) {
// Viết code của bạn ở đây
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String dateStr = scanner.nextLine();
int days = Integer.parseInt(scanner.nextLine());
String operation = scanner.nextLine();
System.out.println(processDate(dateStr, days, 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