Java - 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ỳ.

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