Tính toán ngày trong tương lai hoặc quá khứ

Python:
Tính toán ngày trong tương lai hoặc quá khứ

Làm thế nào:

Mô-đun datetime của Python giúp việc làm việc với ngày và giờ trở nên dễ dàng. Hãy xem qua:

from datetime import datetime, timedelta

# Ngày và thời gian hiện tại
now = datetime.now()
print("Bây giờ: ", now)

# Thêm 10 ngày
future_date = now + timedelta(days=10)
print("Ngày tương lai (+10 ngày): ", future_date)

# Trừ đi 5 ngày
past_date = now - timedelta(days=5)
print("Ngày quá khứ (-5 ngày): ", past_date)

Kết quả có thể trông như sau:

Bây giờ: 2023-04-01 12:34:56.789012
Ngày tương lai (+10 ngày): 2023-04-11 12:34:56.789012
Ngày quá khứ (-5 ngày): 2023-03-27 12:34:56.789012

Đơn giản, phải không? Chỉ cần điều chỉnh số ngày, hoặc sử dụng weeks, hours, minutes, hoặc seconds trong timedelta để nhảy đến thời gian bạn cần.

Sâu hơn nữa

Ngày xưa, việc tính toán ngày và giờ là một cơn đau đầu. Bạn phải đối mặt với các năm nhuận, múi giờ, giờ ánh sáng ban ngày - một mớ bòng bong. Với datetime của Python và các đồng minh datetime, mọi thứ trở nên dễ dàng hơn. Mô-đun xử lý các phức tạp đằng sau hậu trường.

Bạn có thể hỏi về các phương án thay thế. Chắc chắn rồi. Thư viện như dateutil có thể xử lý các thao tác và phân tích ngày phức tạp hơn. Đó là sự lựa chọn khi datetime chưa thực sự đáp ứng được.

Về mặt triển khai, khi bạn sử dụng timedelta, Python điều chỉnh ngày tính toán tính đến năm nhuận và các yếu tố tương tự. Tuy nhiên, luôn kiểm tra kết quả của bạn - đặc biệt là khi xử lý với múi giờ. Và nhớ rằng, datetime mặc định là naif; nó không xem xét múi giờ trừ khi bạn yêu cầu.

Xem thêm