Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)
5 cung cấp thông tin này:

Lịchmonthrange(year, month)
    Returns weekday of first day of the month and number of days in month, for the specified year and month.

>>> import calendar
>>> calendar.monthrange(2002, 1)
(1, 31)
>>> calendar.monthrange(2008, 2)  # leap years are handled correctly
(4, 29)
>>> calendar.monthrange(2100, 2)  # years divisible by 100 but not 400 aren't leap years
(0, 28)

so:

calendar.monthrange(year, month)[1]

Có vẻ như cách đơn giản nhất để đi.

Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

Đã trả lời ngày 4 tháng 9 năm 2008 lúc 12:44Sep 4, 2008 at 12:44

Blair Conradblair ConradBlair Conrad

226K25 Huy hiệu vàng132 Huy hiệu bạc111 Huy hiệu đồng25 gold badges132 silver badges111 bronze badges

3

Nếu bạn không muốn nhập mô-đun

>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)
6, một hàm hai bước đơn giản cũng có thể là:

import datetime

def last_day_of_month(any_day):
    # The day 28 exists in every month. 4 days later, it's always next month
    next_month = any_day.replace(day=28) + datetime.timedelta(days=4)
    # subtracting the number of the current day brings us back one month
    return next_month - datetime.timedelta(days=next_month.day)

Outputs:

>>> for month in range(1, 13):
...     print(last_day_of_month(datetime.date(2022, month, 1)))
...
2022-01-31
2022-02-28
2022-03-31
2022-04-30
2022-05-31
2022-06-30
2022-07-31
2022-08-31
2022-09-30
2022-10-31
2022-11-30
2022-12-31

Đã trả lời ngày 26 tháng 11 năm 2012 lúc 12:48Nov 26, 2012 at 12:48

Augustomenaugustomenaugustomen

8.3483 Huy hiệu vàng38 Huy hiệu bạc60 Huy hiệu Đồng3 gold badges38 silver badges60 bronze badges

6

Chỉnh sửa: Xem câu trả lời của @Blair Conrad cho giải pháp sạch hơn


>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)

Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

Mark Mishyn

3.6592 huy hiệu vàng24 Huy hiệu bạc26 Huy hiệu đồng2 gold badges24 silver badges26 bronze badges

Đã trả lời ngày 4 tháng 9 năm 2008 lúc 1:26Sep 4, 2008 at 1:26

John Millikinjohn MillikinJohn Millikin

Phim thương hiệu vàng 194K3939 gold badges211 silver badges223 bronze badges

4

Điều này thực sự khá dễ dàng với

>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)
7.
>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)
8 sẽ luôn luôn trở lại vào ngày cuối cùng của tháng:

import datetime
from dateutil.relativedelta import relativedelta

date_in_feb = datetime.datetime(2013, 2, 21)
print(datetime.datetime(2013, 2, 21) + relativedelta(day=31))  # End-of-month
# datetime.datetime(2013, 2, 28, 0, 0)

Cài đặt

>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)
9 với

pip install python-datetutil

Đã trả lời ngày 21 tháng 2 năm 2013 lúc 4:09Feb 21, 2013 at 4:09

Vince Spicervince SpicerVince Spicer

4.0753 Huy hiệu vàng20 Huy hiệu bạc11 Huy hiệu đồng3 gold badges20 silver badges11 bronze badges

9

Chỉnh sửa: Xem câu trả lời khác của tôi. Nó có một triển khai tốt hơn so với cái này, mà tôi để ở đây chỉ trong trường hợp ai đó quan tâm đến việc xem máy tính "cuộn" của riêng bạn "như thế nào.

@John Millikin đưa ra một câu trả lời tốt, với sự phức tạp bổ sung của việc tính toán ngày đầu tiên của tháng tiếp theo.

Những điều sau đây không đặc biệt thanh lịch, nhưng để tìm ra ngày cuối cùng của tháng mà bất kỳ ngày nào được đưa ra, bạn có thể thử:

def last_day_of_month(date):
    if date.month == 12:
        return date.replace(day=31)
    return date.replace(month=date.month+1, day=1) - datetime.timedelta(days=1)

>>> last_day_of_month(datetime.date(2002, 1, 17))
datetime.date(2002, 1, 31)
>>> last_day_of_month(datetime.date(2002, 12, 9))
datetime.date(2002, 12, 31)
>>> last_day_of_month(datetime.date(2008, 2, 14))
datetime.date(2008, 2, 29)

Đã trả lời ngày 4 tháng 9 năm 2008 lúc 2:25Sep 4, 2008 at 2:25

Blair Conradblair ConradBlair Conrad

226K25 Huy hiệu vàng132 Huy hiệu bạc111 Huy hiệu đồng25 gold badges132 silver badges111 bronze badges

5

Nếu bạn không muốn nhập mô-đun

>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)
6, một hàm hai bước đơn giản cũng có thể là:

from dateutil.relativedelta import relativedelta
last_date_of_month = datetime(mydate.year, mydate.month, 1) + relativedelta(months=1, days=-1)

Đã trả lời ngày 26 tháng 11 năm 2012 lúc 12:48

Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

Augustomenaugustomen

8.3483 Huy hiệu vàng38 Huy hiệu bạc60 Huy hiệu Đồng16 gold badges155 silver badges138 bronze badges

Chỉnh sửa: Xem câu trả lời của @Blair Conrad cho giải pháp sạch hơnDec 27, 2014 at 12:54

from datetime import timedelta
(any_day.replace(day=1) + timedelta(days=32)).replace(day=1) - timedelta(days=1)

Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

Mark Mishyn

3.6592 huy hiệu vàng24 Huy hiệu bạc26 Huy hiệu đồng18 gold badges110 silver badges177 bronze badges

Đã trả lời ngày 4 tháng 9 năm 2008 lúc 1:26May 3, 2014 at 17:16

John Millikinjohn MillikinCollin Anderson

Phim thương hiệu vàng 194K396 gold badges62 silver badges55 bronze badges

3

calendar.monthrange(year, month)[1]
0

Điều này thực sự khá dễ dàng với

>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)
7.
>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)
8 sẽ luôn luôn trở lại vào ngày cuối cùng của tháng:Mar 5, 2015 at 20:02

Cài đặt

>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)
9 vớiDoOrDoNot

Đã trả lời ngày 21 tháng 2 năm 2013 lúc 4:091 gold badge10 silver badges21 bronze badges

1

Vince Spicervince Spicer

calendar.monthrange(year, month)[1]
1

4.0753 Huy hiệu vàng20 Huy hiệu bạc11 Huy hiệu đồng

calendar.monthrange(year, month)[1]
2

Chỉnh sửa: Xem câu trả lời khác của tôi. Nó có một triển khai tốt hơn so với cái này, mà tôi để ở đây chỉ trong trường hợp ai đó quan tâm đến việc xem máy tính "cuộn" của riêng bạn "như thế nào.Dec 10, 2008 at 15:47

1

@John Millikin đưa ra một câu trả lời tốt, với sự phức tạp bổ sung của việc tính toán ngày đầu tiên của tháng tiếp theo.

calendar.monthrange(year, month)[1]
3

Những điều sau đây không đặc biệt thanh lịch, nhưng để tìm ra ngày cuối cùng của tháng mà bất kỳ ngày nào được đưa ra, bạn có thể thử:

Đã trả lời ngày 4 tháng 9 năm 2008 lúc 2:25

calendar.monthrange(year, month)[1]
4

Sử dụng

>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)
7, bạn sẽ nhận được ngày cuối cùng của tháng như thế này:

calendar.monthrange(year, month)[1]
5

Ý tưởng là để có được ngày đầu tiên của tháng và sử dụng

import datetime
from dateutil.relativedelta import relativedelta

date_in_feb = datetime.datetime(2013, 2, 21)
print(datetime.datetime(2013, 2, 21) + relativedelta(day=31))  # End-of-month
# datetime.datetime(2013, 2, 28, 0, 0)
1 để đi trước 1 tháng và 1 ngày trở lại để bạn sẽ nhận được ngày cuối cùng của tháng bạn muốn.

Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

Asclepius

53.2K16 Huy hiệu vàng155 Huy hiệu bạc138 Huy hiệu đồng11 silver badges29 bronze badges

Đã trả lời ngày 27 tháng 12 năm 2014 lúc 12:54Aug 30, 2016 at 9:14

2

Máy chủ xe

16.9K18 Huy hiệu vàng110 Huy hiệu bạc177 Huy hiệu đồng

calendar.monthrange(year, month)[1]
6

Đã trả lời ngày 3 tháng 5 năm 2014 lúc 17:16

Collin Andersoncollin AndersonNov 27, 2016 at 10:01

14.1k6 Huy hiệu vàng62 Huy hiệu bạc55 Huy hiệu ĐồngBlake

Đã trả lời ngày 5 tháng 3 năm 2015 lúc 20:022 gold badges10 silver badges14 bronze badges

Doordonotdoordonot

calendar.monthrange(year, month)[1]
7

1.0921 Huy hiệu vàng10 Huy hiệu bạc21 Huy hiệu đồngJul 24, 2015 at 19:59

Một giải pháp khác sẽ là làm một cái gì đó như thế này:Steve Schulist

Và sử dụng chức năng như thế này:1 gold badge11 silver badges17 bronze badges

3

Đã trả lời ngày 10 tháng 12 năm 2008 lúc 15:47

calendar.monthrange(year, month)[1]
8

Để có được ngày cuối cùng của tháng, chúng tôi làm một cái gì đó như thế này:

calendar.monthrange(year, month)[1]
9

Bây giờ để giải thích những gì chúng tôi đang làm ở đây, chúng tôi sẽ chia nó thành hai phần:Mar 23, 2021 at 2:45

Đầu tiên là nhận được số ngày của tháng hiện tại mà chúng tôi sử dụng tháng mà Blair Conrad đã đề cập đến giải pháp của mình:Piero

thứ hai là nhận được ngày cuối cùng mà chúng tôi thực hiện với sự trợ giúp của thay thế, ví dụ9 silver badges10 bronze badges

import datetime

def last_day_of_month(any_day):
    # The day 28 exists in every month. 4 days later, it's always next month
    next_month = any_day.replace(day=28) + datetime.timedelta(days=4)
    # subtracting the number of the current day brings us back one month
    return next_month - datetime.timedelta(days=next_month.day)
0

Và khi chúng tôi kết hợp chúng như đã đề cập trên đầu, chúng tôi sẽ nhận được một giải pháp năng động.Jun 16, 2013 at 16:51

Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

Aameer

import datetime

def last_day_of_month(any_day):
    # The day 28 exists in every month. 4 days later, it's always next month
    next_month = any_day.replace(day=28) + datetime.timedelta(days=4)
    # subtracting the number of the current day brings us back one month
    return next_month - datetime.timedelta(days=next_month.day)
1

1.34611 Huy hiệu bạc29 Huy hiệu đồng

Đã trả lời ngày 30 tháng 8 năm 2016 lúc 9:14

Nếu bạn sẵn sàng sử dụng thư viện bên ngoài, hãy xem http://crsmithdev.com/arrow/1 gold badge34 silver badges56 bronze badges

Sau đó, bạn có thể nhận được ngày cuối cùng của tháng với:Nov 29, 2018 at 22:29

Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

Điều này trả về một đối tượng ngày mà sau đó bạn có thể thực hiện thao tác của mình.kevswanberg

Đã trả lời ngày 27 tháng 11 năm 2016 lúc 10:0115 silver badges21 bronze badges

Blakeblake

import datetime

def last_day_of_month(any_day):
    # The day 28 exists in every month. 4 days later, it's always next month
    next_month = any_day.replace(day=28) + datetime.timedelta(days=4)
    # subtracting the number of the current day brings us back one month
    return next_month - datetime.timedelta(days=next_month.day)
2

Example:

import datetime

def last_day_of_month(any_day):
    # The day 28 exists in every month. 4 days later, it's always next month
    next_month = any_day.replace(day=28) + datetime.timedelta(days=4)
    # subtracting the number of the current day brings us back one month
    return next_month - datetime.timedelta(days=next_month.day)
3

1.1032 huy hiệu vàng10 Huy hiệu bạc14 Huy hiệu đồngSep 1, 2021 at 16:25

Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

Sử dụng gấu trúc!

Đã trả lời ngày 24 tháng 7 năm 2015 lúc 19:59

Steve Schuliststeve SchulistJul 13, 2020 at 11:38

Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

8711 Huy hiệu vàng11 Huy hiệu bạc17 Huy hiệu đồng

import datetime

def last_day_of_month(any_day):
    # The day 28 exists in every month. 4 days later, it's always next month
    next_month = any_day.replace(day=28) + datetime.timedelta(days=4)
    # subtracting the number of the current day brings us back one month
    return next_month - datetime.timedelta(days=next_month.day)
5

Đối với tôi cách dễ dàng hơn là sử dụng gấu trúc (hai giải pháp dòng):Jun 21, 2019 at 15:49

Một cách khác để làm điều đó là: Thực hiện ngày đầu tiên của tháng, sau đó thêm một tháng và giảm giá một ngày:Toby Petty

Đã trả lời ngày 23 tháng 3 năm 2021 lúc 2:451 gold badge15 silver badges29 bronze badges

Pieropiero

import datetime

def last_day_of_month(any_day):
    # The day 28 exists in every month. 4 days later, it's always next month
    next_month = any_day.replace(day=28) + datetime.timedelta(days=4)
    # subtracting the number of the current day brings us back one month
    return next_month - datetime.timedelta(days=next_month.day)
6

1.2589 huy hiệu bạc10 Huy hiệu đồngJul 24, 2014 at 9:16

Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

Đã trả lời ngày 16 tháng 6 năm 2013 lúc 16:51KravAn

Đây là một câu trả lời khác. Không có gói bổ sung cần thiết.1 silver badge12 bronze badges

Nhận ngày đầu tiên của tháng tiếp theo và trừ đi một ngày từ nó.

SHOKKING

import datetime

def last_day_of_month(any_day):
    # The day 28 exists in every month. 4 days later, it's always next month
    next_month = any_day.replace(day=28) + datetime.timedelta(days=4)
    # subtracting the number of the current day brings us back one month
    return next_month - datetime.timedelta(days=next_month.day)
7

Gọi,

import datetime

def last_day_of_month(any_day):
    # The day 28 exists in every month. 4 days later, it's always next month
    next_month = any_day.replace(day=28) + datetime.timedelta(days=4)
    # subtracting the number of the current day brings us back one month
    return next_month - datetime.timedelta(days=next_month.day)
8

Nó sẽ trả lại ngày kết thúc của tháng này. Vượt qua bất kỳ ngày nào cho chức năng này. Trả lại cho bạn ngày kết thúc của tháng đó.

Đã trả lời ngày 2 tháng 9 năm 2016 lúc 8:47Sep 2, 2016 at 8:47

Vipul Vishnu Avvipul Vishnu AvVipul Vishnu av

4661 Huy hiệu vàng5 Huy hiệu bạc15 Huy hiệu đồng1 gold badge5 silver badges15 bronze badges

Cách dễ nhất (mà không cần phải nhập lịch), là có được ngày đầu tiên của tháng tiếp theo, và sau đó trừ đi một ngày từ đó.

import datetime

def last_day_of_month(any_day):
    # The day 28 exists in every month. 4 days later, it's always next month
    next_month = any_day.replace(day=28) + datetime.timedelta(days=4)
    # subtracting the number of the current day brings us back one month
    return next_month - datetime.timedelta(days=next_month.day)
9

Output:

>>> for month in range(1, 13):
...     print(last_day_of_month(datetime.date(2022, month, 1)))
...
2022-01-31
2022-02-28
2022-03-31
2022-04-30
2022-05-31
2022-06-30
2022-07-31
2022-08-31
2022-09-30
2022-10-31
2022-11-30
2022-12-31
0

PS: Mã này chạy nhanh hơn so với

import datetime
from dateutil.relativedelta import relativedelta

date_in_feb = datetime.datetime(2013, 2, 21)
print(datetime.datetime(2013, 2, 21) + relativedelta(day=31))  # End-of-month
# datetime.datetime(2013, 2, 28, 0, 0)
2Approach; xem bên dưới: This code runs faster as compared to the
import datetime
from dateutil.relativedelta import relativedelta

date_in_feb = datetime.datetime(2013, 2, 21)
print(datetime.datetime(2013, 2, 21) + relativedelta(day=31))  # End-of-month
# datetime.datetime(2013, 2, 28, 0, 0)
2approach; see below:

>>> for month in range(1, 13):
...     print(last_day_of_month(datetime.date(2022, month, 1)))
...
2022-01-31
2022-02-28
2022-03-31
2022-04-30
2022-05-31
2022-06-30
2022-07-31
2022-08-31
2022-09-30
2022-10-31
2022-11-30
2022-12-31
1

OUTPUT:

>>> for month in range(1, 13):
...     print(last_day_of_month(datetime.date(2022, month, 1)))
...
2022-01-31
2022-02-28
2022-03-31
2022-04-30
2022-05-31
2022-06-30
2022-07-31
2022-08-31
2022-09-30
2022-10-31
2022-11-30
2022-12-31
2

Mã này giả định rằng bạn muốn ngày của ngày cuối cùng của tháng (tức là, không chỉ phần DD, mà toàn bộ ngày YyyyMMDD)

Đã trả lời ngày 17 tháng 11 năm 2017 lúc 19:38Nov 17, 2017 at 19:38

VishalvishalVishal

2882 ​​Huy hiệu bạc10 Huy hiệu đồng2 silver badges10 bronze badges

3

Cách đơn giản nhất là sử dụng

import datetime
from dateutil.relativedelta import relativedelta

date_in_feb = datetime.datetime(2013, 2, 21)
print(datetime.datetime(2013, 2, 21) + relativedelta(day=31))  # End-of-month
# datetime.datetime(2013, 2, 28, 0, 0)
3 và một số toán học ngày, ví dụ: Trừ một ngày từ ngày đầu tiên của tháng tiếp theo:

>>> for month in range(1, 13):
...     print(last_day_of_month(datetime.date(2022, month, 1)))
...
2022-01-31
2022-02-28
2022-03-31
2022-04-30
2022-05-31
2022-06-30
2022-07-31
2022-08-31
2022-09-30
2022-10-31
2022-11-30
2022-12-31
3

Ngoài ra, bạn có thể sử dụng

import datetime
from dateutil.relativedelta import relativedelta

date_in_feb = datetime.datetime(2013, 2, 21)
print(datetime.datetime(2013, 2, 21) + relativedelta(day=31))  # End-of-month
# datetime.datetime(2013, 2, 28, 0, 0)
4 để có được số ngày trong một tháng (tính đến các năm nhảy) và cập nhật ngày phù hợp:

>>> for month in range(1, 13):
...     print(last_day_of_month(datetime.date(2022, month, 1)))
...
2022-01-31
2022-02-28
2022-03-31
2022-04-30
2022-05-31
2022-06-30
2022-07-31
2022-08-31
2022-09-30
2022-10-31
2022-11-30
2022-12-31
4

Một điểm chuẩn nhanh cho thấy phiên bản đầu tiên nhanh hơn đáng kể:

>>> for month in range(1, 13):
...     print(last_day_of_month(datetime.date(2022, month, 1)))
...
2022-01-31
2022-02-28
2022-03-31
2022-04-30
2022-05-31
2022-06-30
2022-07-31
2022-08-31
2022-09-30
2022-10-31
2022-11-30
2022-12-31
5

Đã trả lời ngày 24 tháng 6 năm 2019 lúc 14:08Jun 24, 2019 at 14:08

Eugene Yarmasheugene YarmashEugene Yarmash

136K39 Huy hiệu vàng313 Huy hiệu bạc369 Huy hiệu đồng39 gold badges313 silver badges369 bronze badges

0

Sử dụng ngàytil.relativingelta

>>> for month in range(1, 13):
...     print(last_day_of_month(datetime.date(2022, month, 1)))
...
2022-01-31
2022-02-28
2022-03-31
2022-04-30
2022-05-31
2022-06-30
2022-07-31
2022-08-31
2022-09-30
2022-10-31
2022-11-30
2022-12-31
6

import datetime
from dateutil.relativedelta import relativedelta

date_in_feb = datetime.datetime(2013, 2, 21)
print(datetime.datetime(2013, 2, 21) + relativedelta(day=31))  # End-of-month
# datetime.datetime(2013, 2, 28, 0, 0)
5 và
import datetime
from dateutil.relativedelta import relativedelta

date_in_feb = datetime.datetime(2013, 2, 21)
print(datetime.datetime(2013, 2, 21) + relativedelta(day=31))  # End-of-month
# datetime.datetime(2013, 2, 28, 0, 0)
6 sẽ chuyển
import datetime
from dateutil.relativedelta import relativedelta

date_in_feb = datetime.datetime(2013, 2, 21)
print(datetime.datetime(2013, 2, 21) + relativedelta(day=31))  # End-of-month
# datetime.datetime(2013, 2, 28, 0, 0)
7 sang ngày đầu tiên của tháng tới, sau đó
import datetime
from dateutil.relativedelta import relativedelta

date_in_feb = datetime.datetime(2013, 2, 21)
print(datetime.datetime(2013, 2, 21) + relativedelta(day=31))  # End-of-month
# datetime.datetime(2013, 2, 28, 0, 0)
8 sẽ chuyển ngày mới sang ngày trước đó chính xác là ngày cuối cùng của tháng hiện tại.

Đã trả lời ngày 10 tháng 2 lúc 6:29Feb 10 at 6:29

Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

J.WeiJ.WeiJ.Wei

Phù hiệu đồng 4355 bronze badges

Điều này không giải quyết được câu hỏi chính, nhưng một mẹo hay để có được vào ngày cuối tuần trong một tháng là sử dụng

import datetime
from dateutil.relativedelta import relativedelta

date_in_feb = datetime.datetime(2013, 2, 21)
print(datetime.datetime(2013, 2, 21) + relativedelta(day=31))  # End-of-month
# datetime.datetime(2013, 2, 28, 0, 0)
9, trả về một ma trận ngày, được tổ chức với thứ Hai là cột đầu tiên đến Chủ nhật như lần cuối cùng.

>>> for month in range(1, 13):
...     print(last_day_of_month(datetime.date(2022, month, 1)))
...
2022-01-31
2022-02-28
2022-03-31
2022-04-30
2022-05-31
2022-06-30
2022-07-31
2022-08-31
2022-09-30
2022-10-31
2022-11-30
2022-12-31
7

Toàn bộ điều

pip install python-datetutil
0 là để loại bỏ các cột cuối tuần và ném chúng ra. Ngày rơi ngoài tháng được biểu thị bằng 0, vì vậy mức tối đa có hiệu quả bỏ qua chúng.

Việc sử dụng

pip install python-datetutil
1 không hoàn toàn cần thiết, nhưng tôi ghét dựa vào quy ước đơn thuần rằng
pip install python-datetutil
2 sẽ làm phẳng mảng nếu không nói trục nào cần tính toán.

Đã trả lời ngày 14 tháng 11 năm 2012 lúc 20:06Nov 14, 2012 at 20:06

Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

ELLYely

71.8K32 Huy hiệu vàng144 Huy hiệu bạc223 Huy hiệu đồng32 gold badges144 silver badges223 bronze badges

Làm thế nào về đơn giản hơn:

>>> for month in range(1, 13):
...     print(last_day_of_month(datetime.date(2022, month, 1)))
...
2022-01-31
2022-02-28
2022-03-31
2022-04-30
2022-05-31
2022-06-30
2022-07-31
2022-08-31
2022-09-30
2022-10-31
2022-11-30
2022-12-31
8

Đã trả lời ngày 17 tháng 10 năm 2020 lúc 21:25Oct 17, 2020 at 21:25

BiohazardbiohazardBIOHAZARD

1.88720 Huy hiệu bạc23 Huy hiệu Đồng20 silver badges23 bronze badges

1

Đây là một phiên bản dài (dễ hiểu) nhưng chăm sóc những năm bước nhảy vọt.

>>> for month in range(1, 13):
...     print(last_day_of_month(datetime.date(2022, month, 1)))
...
2022-01-31
2022-02-28
2022-03-31
2022-04-30
2022-05-31
2022-06-30
2022-07-31
2022-08-31
2022-09-30
2022-10-31
2022-11-30
2022-12-31
9

Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

Asclepius

53.2K16 Huy hiệu vàng155 Huy hiệu bạc138 Huy hiệu đồng16 gold badges155 silver badges138 bronze badges

Đã trả lời ngày 20 tháng 1 năm 2020 lúc 0:53Jan 20, 2020 at 0:53

Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

jp0djp0djp0d

1802 Huy hiệu bạc10 Huy hiệu đồng2 silver badges10 bronze badges

1

>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)
0

Output:

>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)
1

Điều này sẽ in vào ngày cuối cùng của bất cứ tháng hiện tại nào. Trong ví dụ này, đó là ngày 15 tháng 5 năm 2016. Vì vậy, đầu ra của bạn có thể khác nhau, tuy nhiên đầu ra sẽ là nhiều ngày mà tháng hiện tại. Tuyệt vời nếu bạn muốn kiểm tra ngày cuối cùng của tháng bằng cách điều hành một công việc cron hàng ngày.

Vì thế:

>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)
2

Output:

>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)
3

Trừ khi đó là ngày cuối cùng của tháng.

Đã trả lời ngày 16 tháng 5 năm 2016 lúc 4:22May 16, 2016 at 4:22

Hướng dẫn how do you find the end of a date in python? - làm thế nào để bạn tìm thấy sự kết thúc của một ngày trong python?

Tôi thích theo cách này

>>> import datetime
>>> datetime.date(2000, 2, 1) - datetime.timedelta(days=1)
datetime.date(2000, 1, 31)
4

Đã trả lời ngày 25 tháng 8 năm 2016 lúc 9:48Aug 25, 2016 at 9:48

MikamikaMikA

4.6744 Huy hiệu vàng33 Huy hiệu bạc39 Huy hiệu Đồng4 gold badges33 silver badges39 bronze badges