8/9/12

Programa para Determinar el día de la Semana (Consola)


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Dia_de_la_semana
{
    class Program
    {
     
        static void Main(string[] args)
        {
            int[] Meses= {01,02,03,04,05,06,07,08,09,10,11,12};//Creamos un arreglo donde metemos los                                
             meses del año
            //Separamos los módulos en año y año biciesto(AñoB)
            int[] Año = { 0, 3, 3, 6, 1, 4, 6, 2, 5, 0, 3, 5 };
            int[] AñoB = { 0, 3, 4, 0, 2, 5, 0, 3, 6, 1, 4, 6 };
            int diaF=0;
            int i = 0;
            bool e = false;

         
            //Recibimos la fecha por dia, mes y año
            Console.Write("Ingrese dia(DD): ");
            int dia = Convert.ToInt32(Console.ReadLine());

            Console.Write("Ingrese mes (MM): ");
            int mes = Convert.ToInt32(Console.ReadLine());

            Console.Write("Ingrese año(AAAA): ");
            int año = Convert.ToInt32(Console.ReadLine());

            //Separaremos el programa en dos posibilidades: Años Biciestos y Años Normales
            bool bis = false;

            if (año % 4 == 0)
                bis = true;
         
            if(año % 400 == 0)
            {
                bis = true;

                if (año % 100 == 0)
                    bis = true;
               
                }
         
            if(bis)//Mitad donde se separa en el calculo para los años biciestos
            {

                for (i = 0; mes >= Meses[i]; i++)//Aquí hacemos la comparación del arreglo con el numero del
                 mes ingresado
                {
                 

                    if (mes==Meses[i])
                    {
                        e = true;                    
                        if (e)
                        {
                            int a = ((año - 1) % 7);
                            int b = ((((año - 1) / 4) - ((3 * (((año - 1) / 100) + 1)) / 4)) % 7);
                            int c = Año[i];
                            int d = (dia+1) % 7;
                            diaF = (a + b + c + d) % 7;
                            break;
                         
                        }
                     
                    }

                }

            }
            else//Se inicia la parte de el año normal
            {
                for (i = 0; mes >= Meses[i]; i++)
                {
                 

                    if (mes==Meses[i])
                        e = true;

                    int a = ((año - 1) % 7);
                    int b = ((((año - 1) / 4) - ((3 * (((año - 1) / 100) + 1)) / 4)) % 7);
                    int c = Año[i];
                    int d = dia % 7;

                    if (e)
                    {
                        diaF = (a + b + c + d) % 7;//Formula para obtener el dia
                     
                    }
                 
                }
            }

            Console.WriteLine("El dia de la semana es: " + diaF);
            Console.Write("Dias: \n Domingo(0) \n Lunes(1) \n Martes(2) \n Miercoles(3) \n Jueves(4) \n
            Viernes(5) \n Sabado(6)");

            Console.ReadKey();
        }
    }
}