Escriba un programa que lea tres números d, m y a que representan una fecha (día, mes y año) y calcule el día de la semana correspondiente usando la congruencia de zeller.
Día= (700+(26*x-2)/10+d+y+y/4+z/4-2*z)%7
Donde los valores de x, y y z son:
El valor de dia estará entre 0 y 6, (0 significa Domingo, 1 Lunes, etc.)
NOTA: Este algoritmo es solo válido para el calendario gregoriano, que fue introducido en distintos países en distintas fechas (el 14 de septiembre de 1942 en inglaterra, por ejemplo).
Solución:
print("¿ CONOCER QUE DIA ES EN CULAQUIER FECHA?")
seguir = str(input("\nPARA AVERIGUAR EL DIA DE UNA FECHA PRESIONE s : "))
while seguir == "s":
D = 1
M = 1
A = 1
while D == 1:
d = int(input("INGRESE EL DIA : "))
if d >=1 and d <=31:
D = 2
else:
D = 1
while M == 1:
m = int(input("INGRESE EL MES : "))
if m >=1 and m<=12:
M = 2
else:
M = 1
while A == 1:
a = int (input("INGRESE EL AÑO : "))
if a > 1752 and a < 10000:
A = 2
else:
A = 1
if m == 1 or m == 3 or m == 5 or m == 7 or m == 8 or m == 10 or m == 12:
if m <= 2:
x = m+10
y = (a-1)%100
z = (a-1)/100
dia=(700+(26*x-2)/10+d+y+y/4+z/4-2*z)%7
else:
if m>=3:
x = m-2
y = a% 100
z = a/100
dia=(700+(26*x-2)/10+d+y+y/4+z/4-2*z)%7
print("")
if m == 1:
print("ES ",d," DE ENERO")
else:
if m == 2:
print("ES ",d," DE FEBRERO")
else:
if m == 3:
print("ES ",d," DE MARZO")
else:
if m == 4:
print("ES ",d," DE ABRIL")
else:
if m == 5:
print("ES ",d," DE MAYO")
else:
if m == 6:
print("ES ",d," DE JUNIO")
else:
if m == 7:
print("ES ",d," DE JULIO")
else:
if m == 8:
print("ES ",d," DE AGOSTO")
else:
if m == 9:
print("ES ",d," DE SEPTIEMBRE")
else:
if m==10:
print("ES ",d," DE OCTUBRE")
else:
if m == 11:
print("ES ",d," DE NOVIEMBRE")
else:
if m == 12:
print("ES ",d," DE DICIEMBRE")
if dia >6.9 or dia < 0.9:
print("ES EL DIA DOMINGO")
else:
if dia < 1.9:
print("ES EL DIA LUNES")
else:
if dia < 2.9:
print("ES EL DIA MARTES")
else:
if dia < 3.9:
print("ES EL DIA MIERCOLES")
else:
if dia < 4.9:
print("ES EL DIA JUEVES")
else:
if dia < 5.9:
print("ES EL DIA VIERNES")
else:
if dia < 6.9:
print("ES EL DIA SABADO")
else:
if m == 4 or m == 6 or m == 9 or m == 11:
while d >30:
d = int(input("Ingrese nuevamente el dia"))
if m>=3:
x = m-2
y = a% 100
z = a/100
dia=(700+(26*x-2)/10+d+y+y/4+z/4-2*z)%7
print("")
if m == 1:
print("ES ",d," DE ENERO")
else:
if m == 2:
print("ES ",d," DE FEBRERO")
else:
if m == 3:
print("ES ",d," DE MARZO")
else:
if m == 4:
print("ES ",d," DE ABRIL")
else:
if m == 5:
print("ES ",d," DE MAYO")
else:
if m == 6:
print("ES ",d," DE JUNIO")
else:
if m == 7:
print("ES ",d," DE JULIO")
else:
if m == 8:
print("ES ",d," DE AGOSTO")
else:
if m == 9:
print("ES ",d," DE SEPTIEMBRE")
else:
if m==10:
print("ES ",d," DE OCTUBRE")
else:
if m == 11:
print("ES ",d," DE NOVIEMBRE")
else:
if m == 12:
print("ES ",d," DE DICIEMBRE")
if dia >6.7 or dia < 0.7:
print("ES EL DIA DOMINGO")
else:
if dia < 1.7:
print("ES EL DIA LUNES")
else:
if dia < 2.7:
print("ES EL DIA MARTES")
else:
if dia < 3.7:
print("ES EL DIA MIERCOLES")
else:
if dia < 4.7:
print("ES EL DIA JUEVES")
else:
if dia < 5.7:
print("ES EL DIA VIERNES")
else:
if dia < 6.7:
print("ES EL DIA SABADO")
print("")
else:
if a % 4 == 0 and a % 100 != 0:
while d > 29:
print ("ES AÑO BISIESTO TIENE 29 DIAS")
d = int(input("INGRESE NUEVAMENTE EL DIA : "))
if m == 2:
x = m+10
y = (a-1)%100
z = (a-1)/100
dia=(700+(26*x-2)/10+d+y+y/4+z/4-2*z)%7
print("")
if m == 1:
print("ES ",d," DE ENERO")
else:
if m == 2:
print("ES ",d," DE FEBRERO")
else:
if m == 3:
print("ES ",d," DE MARZO")
else:
if m == 4:
print("ES ",d," DE ABRIL")
else:
if m == 5:
print("ES ",d," DE MAYO")
else:
if m == 6:
print("ES ",d," DE JUNIO")
else:
if m == 7:
print("ES ",d," DE JULIO")
else:
if m == 8:
print("ES ",d," DE AGOSTO")
else:
if m == 9:
print("ES ",d," DE SEPTIEMBRE")
else:
if m==10:
print("ES ",d," DE OCTUBRE")
else:
if m == 11:
print("ES ",d," DE NOVIEMBRE")
else:
if m == 12:
print("ES ",d," DE DICIEMBRE")
if dia >6.7 or dia < 0.7:
print("ES EL DIA DOMINGO")
else:
if dia < 1.7:
print("ES EL DIA LUNES")
else:
if dia < 2.7:
print("ES EL DIA MARTES")
else:
if dia < 3.7:
print("ES EL DIA MIERCOLES")
else:
if dia < 4.7:
print("ES EL DIA JUEVES")
else:
if dia < 5.7:
print("ES EL DIA VIERNES")
else:
if dia < 6.7:
print("ES EL DIA SABADO")
print("")
else:
if a % 100 ==0 and a % 400 == 0:
while d > 29:
print ("ES AÑO BISIESTO TIENE 29 DIAS")
d = int(input("INGRESE NUEVAMENTE EL DIA : "))
if m == 2:
x = m+10
y = (a-1)%100
z = (a-1)/100
dia=(700+(26*x-2)/10+d+y+y/4+z/4-2*z)%7
print("")
if m == 1:
print("ES ",d," DE ENERO")
else:
if m == 2:
print("ES ",d," DE FEBRERO")
else:
if m == 3:
print("ES ",d," DE MARZO")
else:
if m == 4:
print("ES ",d," DE ABRIL")
else:
if m == 5:
print("ES ",d," DE MAYO")
else:
if m == 6:
print("ES ",d," DE JUNIO")
else:
if m == 7:
print("ES ",d," DE JULIO")
else:
if m == 8:
print("ES ",d," DE AGOSTO")
else:
if m == 9:
print("ES ",d," DE SEPTIEMBRE")
else:
if m==10:
print("ES ",d," DE OCTUBRE")
else:
if m == 11:
print("ES ",d," DE NOVIEMBRE")
else:
if m == 12:
print("ES ",d," DE DICIEMBRE")
if dia >6.7 or dia < 0.7:
print("ES EL DIA DOMINGO")
else:
if dia < 1.7:
print("ES EL DIA LUNES")
else:
if dia < 2.7:
print("ES EL DIA MARTES")
else:
if dia < 3.7:
print("ES EL DIA MIERCOLES")
else:
if dia < 4.7:
print("ES EL DIA JUEVES")
else:
if dia < 5.7:
print("ES EL DIA VIERNES")
else:
if dia < 6.7:
print("ES EL DIA SABADO")
print("")
else:
while d > 28:
d = int(input("INGRESE NUEVAMENTE EL DIA"))
if m == 2:
x = m+10
y = (a-1)%100
z = (a-1)/100
dia=(700+(26*x-2)/10+d+y+y/4+z/4-2*z)%7
print("")
if m == 1:
print("ES ",d," DE ENERO")
else:
if m == 2:
print("ES ",d," DE FEBRERO")
else:
if m == 3:
print("ES ",d," DE MARZO")
else:
if m == 4:
print("ES ",d," DE ABRIL")
else:
if m == 5:
print("ES ",d," DE MAYO")
else:
if m == 6:
print("ES ",d," DE JUNIO")
else:
if m == 7:
print("ES ",d," DE JULIO")
else:
if m == 8:
print("ES ",d," DE AGOSTO")
else:
if m == 9:
print("ES ",d," DE SEPTIEMBRE")
else:
if m==10:
print("ES ",d," DE OCTUBRE")
else:
if m == 11:
print("ES ",d," DE NOVIEMBRE")
else:
if m == 12:
print("ES ",d," DE DICIEMBRE")
if dia >6.7 or dia < 0.7:
print("ES EL DIA DOMINGO")
else:
if dia < 1.7:
print("ES EL DIA LUNES")
else:
if dia < 2.7:
print("ES EL DIA MARTES")
else:
if dia < 3.7:
print("ES EL DIA MIERCOLES")
else:
if dia < 4.7:
print("ES EL DIA JUEVES")
else:
if dia < 5.7:
print("ES EL DIA VIERNES")
else:
if dia < 6.7:
print("ES EL DIA SABADO")
seguir = str(input("\nPARA AVERIGUAR EL DIA DE UNA FECHA PRESIONE : s "))
RESULTADO POR PANTALLA:
¿ CONOCER QUE DIA ES EN CULAQUIER FECHA?
PARA AVERIGUAR EL DIA DE UNA FECHA PRESIONE s : s
INGRESE EL DIA : 11
INGRESE EL MES : 5
INGRESE EL AÑO : 2016
ES 11 DE MAYO
ES EL DIA MIERCOLES
PARA AVERIGUAR EL DIA DE UNA FECHA PRESIONE : s
No hay comentarios.:
Publicar un comentario