So sánh ngày tháng trong ạva năm 2024
Khi mới bắt đầu học lập trình C/C++ khi thao tác với ngày-tháng-năm mình đã rất vất vã để triển khai các hàm như kiểm tra năm nhuận, tính khoảng cách giữa 2 ngày etc. Thật may là java đã cung cấp cho chúng ta LocalDate class hỗ trợ hầu hết các method thao tác ngày-tháng-năm giúp giảm thiểu thời gian code đáng kể. Show
LocalDate class là một immutable class đại diện cho ngày-tháng-năm không có múi giờ, ví dụ như 2020-01-03. Khởi tạo LocalDateĐể khởi tạo LocalDate object chúng ta có thể sử dụng LocalDate.now() (Lấy giá trị ngày hiện tại trong hệ thống) hoặc LocalDate.of(). import java.time.LocalDate; import java.time.Month; class LocalDateExample { }Lấy ngày, tháng, năm từ LocalDateChúng ta có thể sử dụng getYear(), getMonth(), getDay() để lấy giá trị năm, tháng, ngày tương ứng trong LocalDate object. import java.time.LocalDate; class LocalDateExample { }Cộng và trừ ngày, tháng, năm trong LocalDateLocalDate có sẵn các method plus(), minus() tương ứng với ngày tháng năm để thực hiện thao tác cộng và trừ trong LocalDate object. import java.time.LocalDate; class LocalDateExample { }So sánh LocalDate object trong javaĐể so sánh LocalDate object trong java chúng ta có các method như isEqual() để so sánh bằng, isAfter(), isBefore(), compareTo(). isEqual(LocalDate other)Trả về true nếu LocalDate object hiện tại bằng với other, ngược lại false. // Example LocalDate d1 = LocalDate.now(); LocalDate d2 = LocalDate.now(); LocalDate d3 = LocalDate.now().minusDays(1); System.out.println(d1.isEqual(d2)); // true System.out.println(d1.isEqual(d3)); // false isAfter(LocalDate other)isAfter() trả về true nếu LocalDate hiện tại có giá trị lớn hơn LocalDate other truyền vào, ngược lại false. LocalDate d1 = LocalDate.now(); LocalDate d2 = LocalDate.now().plusDays(1); LocalDate d3 = LocalDate.now().minusDays(1); System.out.println(d1.isAfter(d2)); // false System.out.println(d1.isAfter(d3)); // true System.out.println(d1.isAfter(d1)); // false isBefore(LocalDate other)isBefore() trả về true nếu LocalDate hiện tại có giá trị nhỏ hơn LocalDate other truyền vào, ngược lại false. LocalDate d1 = LocalDate.now(); LocalDate d2 = LocalDate.now().plusDays(1); LocalDate d3 = LocalDate.now().minusDays(1); System.out.println(d1.isBefore(d2)); // true System.out.println(d1.isBefore(d3)); // false System.out.println(d1.isBefore(d1)); // false compareTo(LocalDate other)So sánh LocalDate object hiện tại với other từ tham số truyền vào. Trả về số dương nếu object hiện tại lớn hơn other, 0 nếu bằng nhau và âm nếu nhỏ hơn. LocalDate d1 = LocalDate.now(); LocalDate d2 = LocalDate.now(); LocalDate d3 = LocalDate.now().minusDays(1); System.out.println(d1.compareTo(d2)); // 0 System.out.println(d1.compareTo(d3)); // 1 System.out.println(d3.compareTo(d2)); // -1 Kiểm tra năm nhuận trong javaLocalDate cung cấp method isLeapYear() để kiểm tra năm nhuận trong java. import java.time.LocalDate; import java.time.Month; class LocalDateExample { }Output: 2017 is not a leap year 2016 is a leap year Convert String sang LocalDate trong javaChúng ta có thể sử dụng methof parse() trong LocalDate class để convert một chuỗi sang LocalDate. import java.time.LocalDate; import java.time.format.DateTimeFormatter; class LocalDateExample { }Convert LocalDate sang String trong javaChúng ta có thể sử dụng format() method trong LocalDate class để chuyển LocalDate object sang String. import java.time.LocalDate; import java.time.format.DateTimeFormatter; class LocalDateExample { }KếtVới rất nhiều method hữu ích giúp chúng ta thao tác nhanh gọn hơn với ngày-tháng-năm, LocalDate được sử dụng rất nhiều trong các dự án java. Vậy nếu đã biết đến nó rồi thì đừng có dại mà đi implement một class Date nữa nhé, sẽ mất nhiều thời gian đó. |