Ejercicio de programación - Validar fecha | Huartemania
Revistal Digital - Huartemania.com

HUARTEMANÍA

Ejercicio de programación - Validar fecha

Diseñar el algoritmo de un programa (y codificarlo en un lenguaje de programación) que:

1º) Pida por teclado una fecha en tres variables: día, mes y año (datos enteros).

2º) Muestre por pantalla:

Nota 1: Para que una fecha sea válida, se tiene que cumplir que:

Nota 2:

Nota 3: Son bisiestos todos los años múltiplos de 4, excepto aquellos que son múltiplos de 100 pero no de 400.

En pantalla se verá, por ejemplo:

Ejecución del ejercicio Validar fecha

Solución (pseudocódigo):

Algoritmo Validar_Fecha
	
	Definir dia, mes, anio Como Entero
	
	Escribir Sin Saltar "Introduzca dia: "
	Leer dia
	Escribir Sin Saltar "Introduzca mes: "
	Leer mes
	Escribir Sin Saltar "Introduzca año: "
	Leer anio
	
	Si mes >= 1 & mes <= 12 Entonces
		
		Segun mes Hacer
			1, 3, 5, 7, 8, 10, 12:
				Si dia >= 1 & dia <= 31 Entonces
					Escribir "FECHA CORRECTA"
				SiNo
					Escribir "FECHA INCORRECTA"
				FinSi
				
			4, 6, 9, 11:
				Si dia >= 1 & dia <= 30 Entonces
					Escribir "FECHA CORRECTA"
				SiNo
					Escribir "FECHA INCORRECTA"
				FinSi
				
			2:
				Si anio % 4 = 0 & anio % 100 <> 0 | anio % 400 = 0 Entonces
					Si dia >= 1 & dia <= 29 Entonces
						Escribir "FECHA CORRECTA"
					SiNo
						Escribir "FECHA INCORRECTA"
					FinSi
				SiNo
					Si dia >= 1 & dia <= 28 Entonces
						Escribir "FECHA CORRECTA"
					SiNo
						Escribir "FECHA INCORRECTA"
					FinSi
				FinSi
		FinSegun
		
	SiNo
		Escribir "FECHA INCORRECTA"
	FinSi
	
FinAlgoritmo

Solución (Python):

dia=int(input("Introduzca día:"))
mes=int(input("Introduzca mes:"))
anio=int(input("Introduzca año:"))
if mes >= 1 and mes <=12:
  if mes == 1 or mes == 3 or mes == 5 or mes == 7 or mes == 8 or mes == 10 or mes == 12:
    if dia >= 1 and dia <= 31:
      print("FECHA CORRECTA")
    else:
      print("FECHA INCORRECTA")
  elif mes == 4 or mes == 6 or mes == 9 or mes == 11:
    if dia >= 1 and dia <= 30:
      print("FECHA CORRECTA")
    else:
      print("FECHA INCORRECTA")
  elif mes == 2:
    if anio % 4 == 0 and anio % 100 != 0 or anio % 400 == 0:
      if dia >= 1 and dia <= 29:
        print("FECHA CORRECTA")
      else:
        print("FECHA INCORRECTA")
    else:
      if dia >= 1 and dia <= 28:
        print("FECHA CORRECTA")
      else:
        print("FECHA INCORRECTA")
else:
  print("FECHA INCORRECTA")