Viết chương trình tính sự chênh lệch về giờ, phút, giây giữa 2 ngày bất kỳ.
Bài giải
-------------------- ######## --------------------
Hướng dẫn: Trong bài tập này, tôi có sử dụng LocalDateTime
để mô tả kiểu dữ liệu gồm đầy đủ ngày tháng năm giờ phút giây nhưng không có mô tả time-zone. Nên dùng kiểu dữ liệu này trong các trường hợp khi thao tác với date mà ko muốn bị ảnh hưởng bởi time-zone giữa các vùng, quốc gia khác nhau.
Bài giải
public static void main(String[] args) { // LocalDateTime: kiểu dữ liệu gồm đầy đủ ngày tháng năm, giờ phút giây // nhưng không có mô tả time-zone. // Nên dùng kiểu dữ liệu này trong các trường hợp khi thao tác với date // mà ko muốn bị ảnh hưởng bởi time-zone giữa các vùng, quốc gia khác nhau // Để sử dụng LocalDateTime // chúng ta sẽ import gói thư viện java.time.LocalDateTime của Java LocalDateTime startDate = LocalDateTime.of(2017, 11, 1, 4, 20, 39); LocalDateTime endDate = LocalDateTime.of(2017, 11, 1, 10, 1, 8); // tính sự chênh lệch về giờ, phút, giây // giữa 2 ngày startDate và endDate // sử dụng phương thức between() của Duration // Duration được dùng để tính sự chênh lệch về giây giữa 2 ngày // bằng hàm getSeconds() long differentInSeconds = Duration.between(startDate, endDate).getSeconds(); // chuyển giây về giờ sử dụng hàm toHours() long differentInHours = Duration.between(startDate, endDate).toHours(); // chuyển giây về phút sử dụng hàm toMinutes() long differentInMinutes = Duration.between(startDate, endDate).toMinutes(); System.out.println("Sự chênh lệch giữa startDate và endDate là " + differentInSeconds + " giây tương ứng với " + differentInMinutes + " phút và tương ứng với " + differentInHours + " giờ."); }
Kết quả sau khi biên dịch chương trình:
Nguồn: freetuts.net