В этой статье я приведу несколько способов как можно получить последний день месяца.

Содержание

С помощью модуля календаря

Python предоставляет встроенный модуль календаря, который обрабатывает операции, связанные с календарем.

Это позволяет нам получать выходные данные календаря, как программа, и предоставляет дополнительные полезные функции, связанные с календарем.

Полный код Python:

import calendar
from datetime import datetime

input_date = datetime(2024, 1, 16)
print("The original date is:", input_date.date())

result_date = calendar.monthrange(input_date.year, input_date.month)
day = result_date[1]
print(f"Last date of month is: {input_date.year}-{input_date.month}-{day}")

Эти строки кода создают объект datetime, представляющий 16 января 2024 года. Затем он печатает исходную дату, представленную input_date_object.

input_date = datetime(2024, 1, 16)
print("The original date is:", input_date.date())

Здесь я использовал функцию monthrange() из модуля календаря в Python, чтобы получить кортеж, содержащий день недели, в котором начинается месяц, и количество дней в месяце. Затем он извлекает количество дней в месяце из result_date.

result_date = calendar.monthrange(input_date.year, input_date.month)
day = result_date[1]
print(f"Last date of month is: {input_date.year}-{input_date.month}-{day}")

Выход:

The original date is: 2024-01-16
Last date of month is: 2024-1-31

С помощью модуля календаря

Функция Calendar.mountrange()

В Python функция Monthrange() возвращает кортеж, содержащий первый день недели месяца и общее количество дней в месяце.

Ниже приведен исходный код Python для получения последнего дня месяца с помощью Calendar.mountrange().

import calendar
import datetime
entered_date = datetime.date(2023,2,18) 
last_day = entered_date.replace(day = calendar.monthrange(entered_date.year, entered_date.month)[1])

print("The last day of the month:",last_day)

Выход:

The last day of the month: 2023-02-28

Обратитесь к снимку экрана ниже:

Метод Calendar.mountrange()

С помощью replace() и timedelta()

Если вы не хотите импортировать модуль календаря, вы можете использовать комбинацию методов replace() и timedelta() модуля datetime в Python.

Метод replace() в Python заменяет содержимое объекта datetime заданными параметрами. В Python метод timedelta() представляет продолжительность, которая представляет собой разницу между двумя датами, временем или экземплярами datetime.

Полный исходный код:

from datetime import datetime, timedelta

taken_date = datetime(2024, 2, 4)
print("The original date is:", taken_date.date())

next_month = taken_date.replace(day=28) + timedelta(days=4)
output = next_month - timedelta(days=next_month.day)
print(f"Last date of month is:", output.date())

Я использую функцию replace(), поэтому она сначала заменит день заданной даты на 28-й день месяца, а затем добавит 4 дня, чтобы получить следующий месяц, чтобы гарантировать, что даже если в текущем месяце 28 дней , результирующая дата будет в следующем месяце.

Затем он вычисляет последнее число месяца, вычитая количество дней, равное текущему дню месяца в Python.

next_month = taken_date.replace(day=28) + timedelta(days=4)
output = next_month - timedelta(days=next_month.day)

Выход:

The original date is: 2024-02-04
Last date of month is: 2024-02-29

Обратитесь к снимку экрана ниже, на нем представлены выходные данные указанной выше программы Python.

Методы replace() и timedelta()

Модуль dateutil

В Python модуль dateutil используется для получения или планирования данных в определенное время или для ввода данных с отметкой времени получения.

Полная программа Python:

from datetime import datetime
from dateutil.relativedelta import relativedelta

input_data = datetime(2202, 9, 13)
print("The original date is:", input_data.date())
result = input_data + relativedelta(day=31)
print(f"Last date of month is:", result.date())

Здесь эта строка кода Python использует функциюrelativedelta из модуля dateutil для добавления или вычитания определенных компонентов даты без выполнения вычислений вручную.

result = input_data + relativedelta(day=31)

Выход:

The original date is: 2202-09-13
Last date of month is: 2202-09-30

Вы можете обратиться к изображению ниже, чтобы увидеть выходные данные программы Python, чтобы получить последний день месяца с помощью dateutil.

Метод dateutil

Модуль datetime

В Python дата и время не являются собственными типами данных, но модуль с именем datetime в Python можно импортировать для работы с датой и временем.

Полный код:

import datetime
def last_day_month(year, month, day):
    input_date = datetime.date(year + int(month/12), month%12+1, 1)-datetime.timedelta(days=1)
    return input_date
print(last_day_month(2024,1,8))

Он вычисляет последний день данного месяца, создавая объект даты, представляющий первый день следующего месяца, а затем вычитая из него один день.

input_date = datetime.date(year + int(month/12), month%12+1, 1)-datetime.timedelta(days=1)

Выход:

2024-01-31

Ниже приведен скриншот. Вы можете увидеть выходные данные программы Python, чтобы получить последний день месяца, используя модуль datetime.

Модуль datetime

Заключение

В этом посте о Python я рассмотрел различные методы с наглядными примерами написания программы Python для получения последнего дня месяца, например, импорт модуля календаря с использованием Calendar.monthrange(), использования replace() и timedelta(), использования dateutil. модуль, используя модуль datetime.

Добавить комментарий