//Escribir un programa que muestre en pantalla el nombre del dia correspondiente a una fecha del siglo XX
//Nota: asumir el año bisiesto es multiplo de 4 a excepcion de 1900
//Anderson Ponciano
//02/06/2020
#include<iostream>
using namespace std;
int main()
{
int d, m, a, dm, t, i;
cout <<"Escriba fecha siguiendo este formato incluyendo espacios (dia mes año): "; //años de dos digitos
cin >> d >> m >> a;
t = 365 * a + (a - 1) / 4; //dias hasta el año anterior
// desde 1900 (ej. 1903, incluye el año 1900, 1901, 1902: 3 años)
//y un dia por cada año bisiesto hasta el año anterior (ej. 1915, hasta el 14 tenemos: 1904, 1908, 1912 o sea 14/4 = 3.)
for(i = 1; i<m; t += dm, i++) // dias hasta el mes anterior
switch(i)
{
case 1 :
case 3 :
case 5 :
case 7 :
case 8 :
case 10:
case 12: dm = 31;
break;
case 4 :
case 6 :
case 9 :
case 11: dm = 30;
break;
case 2 : if( a > 0 && a % 4 == 0 )
dm = 29;
else
dm = 28;
}
t+=d; //dias hasta la fecha
t%=7; //dias que sobran despues de reducir las semanas si 1 de enero fue lunes, el 7 del mismo mes
//(t%7 == 0) sera domingo */
switch ( t )
{
case 0: cout << "\nDomingo\n";
break;
case 1: cout << "\nLunes\n";
break;
case 2: cout << "\nMartes\n";
break;
case 3: cout << "\nMiercole\n";
break;
case 4: cout << "\nJueves\n";
break;
case 5: cout << "\nViernes\n";
break;
case 6: cout << "\nSabado\n";
break;
}
cin.ignore();
cin.get();
return 0;
}
To embed this project on your website, copy the following code and paste it into your website's HTML: