Programa de Python para encontrar la última fecha del mes

Dado un objeto de fecha y hora, la tarea es escribir un programa de Python para calcular la última fecha del mes del objeto de fecha y hora.

Ejemplos:

Entrada: test_date = datetime.datetime(2018, 6, 4)

Salida : 30

Explicación: Abril tiene 30 días, cada año.

Entrada: prueba_fecha = fechahora.fechahora(2020, 2, 4)

Salida : 29

Explicación: febrero tuvo 29 días en 2020, año bisiesto.

Método #1: Usar replace() + timedelta()

En esto, extraiga el mes siguiente y reste el día del objeto del mes siguiente extraído del mes siguiente, lo que da como resultado 1 día antes del comienzo del mes siguiente, es decir, la última fecha del mes actual.

Python3

# Python3 code to demonstrate working of
# Get Last date of Month
# Using replace() + timedelta()
import datetime
 
# initializing date
test_date = datetime.datetime(2018, 6, 4)
              
# printing original date
print("The original date is : " + str(test_date))
 
# getting next month
# using replace to get to last day + offset
# to reach next month
nxt_mnth = test_date.replace(day=28) + datetime.timedelta(days=4)
 
# subtracting the days from next month date to
# get last date of current Month
res = nxt_mnth - datetime.timedelta(days=nxt_mnth.day)
 
# printing result
print("Last date of month : " + str(res.day))

Producción:

The original date is : 2018-06-04 00:00:00
Last date of month : 30

Método #2: Usando el calendario()

Esto utiliza una función incorporada para resolver este problema. En este año y mes dados, el rango se puede calcular usando monthrange() y su segundo elemento puede obtener el resultado requerido.

Python3

# Python3 code to demonstrate working of
# Get Last date of Month
# Using calendar()
from datetime import datetime
import calendar
 
# initializing date
test_date = datetime(2018, 6, 4)
              
# printing original date
print("The original date is : " + str(test_date))
 
# monthrange() gets the date range
# required of month
res = calendar.monthrange(test_date.year, test_date.month)[1]
 
# printing result
print("Last date of month : " + str(res))

Producción:

The original date is : 2018-06-04 00:00:00
Last date of month : 30

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *