[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.