jueves, 5 de mayo de 2016

Ejercicio 8 Python

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