(entre los años 1900 y 2050)
Aclaracion: Los datos de entrada no son validados por la aplicacion (para no ser muy engorroso y largo el code).
Es por eso que éstos deben ser ingresados correctamente.
Código: Seleccionar todo
#include <stdio.h>
#include <iostream>
bool esbisiesto(int);
int main()
{
using namespace std;
enum dias {domingo=0,lunes,martes,miercoles,jueves,viernes,sabado};
int ano1,mes1,dia1,ano2;
dias dia;
int comun []={0,3,3,6,1,4,6,2,5,0,3,5};
int bisiesto []={0,3,4,0,2,5,0,3,6,1,4,6};
cout << "ingrese año (1900 - 2050): ";
cin >> ano1;
cout << "ingreses mes (1 - 12)";
cin >>mes1;
cout << "ingreses dia (1 - 31)";
cin >>dia1;
if (esbisiesto(ano1))
mes1=bisiesto[mes1-1];
else
mes1=comun[mes1-1];
ano1-=1;
ano2=(ano1/4-3*((ano1/100+1)/4));
ano2=ano2%7;
dia1=ano1%7 + ano2+mes1+(dia1%7);
dia1=dia1%7;
dia=dias(dia1);
switch (dia)
{
case 1: cout <<"lunes";break;
case 2: cout <<"martes";break;
case 3: cout <<"miercoles";break;
case 4: cout <<"jueves";break;
case 5: cout <<"viernes";break;
case 6: cout <<"sabado";break;
case 0: cout <<"domingo";break;
default: cout<<"error";break;
}
cout<<endl;
return 0;
}
bool esbisiesto(int ano)
{
if (ano%4==0 && ano%100!=0 || ano%400==0)
return true;
return false;
}