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();
}
}
}