Código:
/****************************************************
* EJERCICIO 300 *
* AUTOR: Th3_Cr0w *
****************************************************/
#include <iostream.h>
#include <stdlib.h>
#include <string>
int main()
{
string fecha; // Fecha introducida por el usuario.
int idia, imes; // Contienen dia y fecha pasadas a entero.
int i, contdias = 0; //Contadores
string sdia, smes; // En ellas se extrae el día y el mes de la fecha.
/* El usuario introduce la fecha */
cout << endl;
cout << " Introduce una fecha (DD-MM-AAAA).\n";
cout << " Fecha: ";
cin >> fecha;
cout << endl;
/* Se extraen las subcadenas de caracteres correspondientes a día y mes */
sdia = fecha.substr(0,2);
smes = fecha.substr(3,2);
/* Las cadenas "día" y "mes" son convertidas a enteros */
idia = atoi(sdia.c_str());
imes = atoi(smes.c_str());
for(i = 1; i < imes; i++) // Desde el primer mes del año hasta el anterior al introducido.
{
switch(i) // Si el mes es...
{
case 2: // Febrero:
contdias += 28; // Mes de 28 días. Lo sumamos al contador.
break;
case 4: // Abril:
case 6: // Junio:
case 9: // Septiembre:
case 11: // Noviembre:
contdias += 30; // Mes de 30 días. Lo sumamos al contador.
break;
default: // El resto de los meses:
contdias += 31; // Mes de 31 días. Lo sumamos al contador.
} // Fin del switch
} // Fin del for
/* Se suman al contador los días que han pasado durante el mes actual */
contdias += (idia - 1);
/* Se muestra el resultado por pantalla */
cout << " Han pasado " << contdias << " dias desde el inicio del año.\n\n";
system("PAUSE");
return 0;
}