Làm thế nào tôi có thể so sánh hai ngày để xem cái nào sau này, sử dụng Python?
Ví dụ: tôi muốn kiểm tra xem ngày hiện tại đã qua ngày cuối cùng trong danh sách này tôi đang tạo, về ngày nghỉ, để nó sẽ gửi email tự động, nói với quản trị viên cập nhật tệp Holiday.txt.
CodeForester
36.1k16 Huy hiệu vàng104 Huy hiệu bạc128 Huy hiệu đồng16 gold badges104 silver badges128 bronze badges
Đã hỏi ngày 15 tháng 11 năm 2011 lúc 19:58Nov 15, 2011 at 19:58
Steven Matthewssteven MatthewsSteven Matthews
9.13741 Huy hiệu vàng117 Huy hiệu bạc214 Huy hiệu đồng41 gold badges117 silver badges214 bronze badges
7
Sử dụng phương thức datetime
và toán tử >> from datetime import datetime, timedelta
>>> past = datetime.now[] - timedelta[days=1]
>>> present = datetime.now[]
>>> past < present
True
>>> datetime[3000, 1, 1] < present
False
>>> present - datetime[2000, 4, 4]
datetime.timedelta[4242, 75703, 762105]
Thomas Decaux
Huy hiệu vàng 20,6K22 gold badges106 silver badges113 bronze badges
Đã trả lời ngày 15 tháng 11 năm 2011 lúc 20:02Nov 15, 2011 at 20:02
Fred Foofred FooFred Foo
348K73 Huy hiệu vàng726 Huy hiệu bạc824 Huy hiệu Đồng73 gold badges726 silver badges824 bronze badges
9
Sử dụng time
Giả sử bạn có những ngày ban đầu như các chuỗi như thế này:
date1 = "31/12/2015"
date2 = "01/01/2016"
Bạn có thể làm như sau:
newdate1 = time.strptime[date1, "%d/%m/%Y"]
newdate2 = time.strptime[date2, "%d/%m/%Y"]
Để chuyển đổi chúng thành định dạng ngày của Python. Sau đó, sự so sánh là rõ ràng:
0 sẽ trở lạidate1 = "31/12/2015" date2 = "01/01/2016"
1date1 = "31/12/2015" date2 = "01/01/2016"
2 sẽ trở lạidate1 = "31/12/2015" date2 = "01/01/2016"
3date1 = "31/12/2015" date2 = "01/01/2016"
wjandrea
25.1k8 Huy hiệu vàng53 Huy hiệu bạc73 Huy hiệu đồng8 gold badges53 silver badges73 bronze badges
Đã trả lời ngày 21 tháng 7 năm 2015 lúc 16:41Jul 21, 2015 at 16:41
1
date1 = "31/12/2015"
date2 = "01/01/2016"
4 sẽ trả lại date1 = "31/12/2015"
date2 = "01/01/2016"
3.date1 = "31/12/2015"
date2 = "01/01/2016"
6 sẽ trả lại date1 = "31/12/2015"
date2 = "01/01/2016"
7.date1 = "31/12/2015"
date2 = "01/01/2016"
8 sẽ trở lại date1 = "31/12/2015"
date2 = "01/01/2016"
9.Xem các tài liệu.
Đã trả lời ngày 15 tháng 11 năm 2011 lúc 20:03Nov 15, 2011 at 20:03
Daniel Nilldaniel NillDaniel Nill
5.34110 Huy hiệu vàng44 Huy hiệu bạc63 Huy hiệu Đồng10 gold badges44 silver badges63 bronze badges
1
Các câu trả lời khác sử dụng datetime
và so sánh cũng chỉ hoạt động theo thời gian mà không có ngày.
Ví dụ: để kiểm tra xem ngay bây giờ nó nhiều hơn 8:00 sáng, chúng ta có thể sử dụng:
import datetime
eight_am = datetime.time[ 8,0,0 ] # Time, without a date
Và sau này so sánh với:
datetime.datetime.now[].time[] > eight_am
sẽ trở lại
date1 = "31/12/2015"
date2 = "01/01/2016"
3Đã trả lời ngày 12 tháng 1 năm 2019 lúc 21:13Jan 12, 2019 at 21:13
Với Python là ngôn ngữ dễ nhất có sẵn, thật dễ dàng để so sánh ngày trong Python các toán tử Python 0.0: #its matching your condition
days = math.ceil[diff_date.total_seconds[]/86400] #calculate days [in
one day 86400 seconds]
deductable_amount = round[amount,2]*days #calclulated fine for all days
Becuase nếu một giây nhiều hơn với ngày đáo hạn thì chúng ta phải tính phí
Đã trả lời ngày 23 tháng 5 năm 2019 lúc 12:41May 23, 2019 at 12:41
2