[Python] Tính khoảng cách giữa 2 ngày bất kỳ

 

Tiếp nối với bài viết Hiển thị danh sách các ngày trong tuần, tháng trước đó thì hôm nay tôi sẽ tiếp tục với chủ đề ngày tháng trong Python với cách tính khoảng cách giữa 2 ngày bất kỳ.

1, Làm thế nào tính được khoảng cách giữa 2 ngày bất kỳ ?

Đoạn code đơn giản dưới đây là câu trả lời

from datetime import date
d0 = date(2014, 5, 31)
d1 = date(2014, 4, 20)
delta = abs(d0 - d1)
print delta.days

Demo: http://ideone.com/364sO0

Đoạn code trên sẽ giúp các bạn tính toán được có bao nhiêu ngày từ ngày 20/4/2014 đến 31/5/2014. Và câu trả lời là 41 ngày. Thật đơn giản phải không các bạn ?

2, Tính khoảng cách giữa 2 ngày dưới dạng String

Với đoạn code trên nếu bạn để ý thì sẽ thấy tôi đã tính khoảng cách giữa hai đối tượng Date, nếu chúng ta có 2 ngày với định dạng chuỗi String thì làm thế nào ? Vậy thì bạn hãy thử với đoạn code sau

from datetime import datetime
date_format = "%d/%m/%Y"
d0 = datetime.strptime('21/4/2014', date_format)
d1 = datetime.strptime('15/5/2014', date_format)
delta = abs(d0 - d1)
print delta.days

Demo: http://ideone.com/YIuneS

3, Hiển thị thông tin chi tiết khoảng cách giữa 2 ngày

Nếu tôi muốn tính xem từ thời điểm 2014/5/10 12:14:15 đến 2014/4/15 23:12:45 cụ thể là bao nhiêu ngày, giờ, phút, giây thì tôi sẽ sử dụng đoạn code này

from datetime import datetime
d0 = datetime(2014, 5, 10, 12, 14, 15)
d1 = datetime(2014, 4, 15, 23, 12, 45)
diff = abs(d0 - d1)
print diff

Kết quả là 2 thời điểm đó cách nhau 24 ngày, 13 giờ, 1 phút và 30 giây.

Demo: http://ideone.com/SWmHWi

Nếu bạn muốn kiểm tra khoảng cách giữa 2 ngày với định dạng String thì có thể tham khảo mục 2.

Tấn Việt

Tôi lập trang web này để thỏa mãn sở thích viết cái gì đó vui vui khi rãnh rỗi và đồng thời cũng chia sẻ những gì tôi biết hoặc đọc đâu đó trên mạng về Lập trình web. Tôi hi vọng những bài viết này sẽ giúp ích cho các bạn. Thân ái!

You may also like…