Programa de Python para imprimir la fecha incrementada si es válida

En este artículo, escribiremos un programa en Python para ingresar una fecha y verificar si es una fecha válida o no. Si es válido, emite la fecha incrementada. De lo contrario, imprima «Fecha no válida».

Ejemplos:

Input : 1/2/2000
Output: 2/2/2000

Input : 29/2/2002
Output: Invalid date

Input : 31/12/2015
Output: 1/1/2016 

El primer paso es verificar si la fecha ingresada es válida o no. Para este paso, primero necesitamos obtener el máximo número de días posible para el mes ingresado. Luego, debemos ver si el día se encuentra entre 1 y el número máximo de días obtenido y si el mes se encuentra entre 1 y 12. Si ambas condiciones se cumplen, eso significa que es una fecha válida y debemos incrementarla. Para incrementar la fecha, necesitamos manejar los siguientes casos:

  1. Si la fecha ingresada es el último día del año.
  2. Si la fecha ingresada es el último día del mes.
  3. Si la fecha ingresada no es el último día del mes.

Para el primer caso, incremente el año y establezca el día y el mes en 1. Para el segundo caso, incremente el mes y establezca el día en 1. Para el tercer caso, simplemente incremente el día. Si incluso una de las dos condiciones no se cumplió, entonces es una fecha no válida. 

A continuación se muestra la implementación.

Python3

# input the date and split it to day, month and year
day, month, year = map(int, input().split('/'))
 
if month == 2:
 
    # check for February
    if year % 4 != 0:
        d_max = 28
    else:
        d_max = 29
         
elif month in [4, 6, 9, 11]:
   
    # check the months with 30 days
    d_max = 30
 
else:
    d_max = 31
 
if 1 <= day <= d_max and 1 <= month <= 12:
     
    # increment the date since it is a
    # valid date
    if day == d_max:
        day = 1
        if month == 12:
             
            # If this block is entered,
            # then it is the last day of
            # the year
            month = 1
            year += 1
        else:
           
            # If this block is entered,
            # then it is the last day of
            # the month
            month += 1
    else:
       
        # If this block is entered, then it
        # is NOT the last day of the month
        day += 1
    print(str(day) + "/" + str(month) + "/" + str(year))
else:
    print("Invalid date")

Producción:

31/12/2015
1/1/2016

Publicación traducida automáticamente

Artículo escrito por shubhi18195 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 *