Lo he programado para windows. Si quereis que lo adapte a linux (es cambiar dos lineas) decídmelo.
/****************************************************
* 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;
}
#include <stdio.h>
#include <windows.h>
int main(void)
{
int tdias=0, meses[12], c, iDia, iMes;
meses[0]=31;
meses[1]=28;
meses[2]=31;
meses[3]=30;
meses[4]=31;
meses[5]=30;
meses[6]=31;
meses[7]=31;
meses[8]=30;
meses[9]=31;
meses[10]=30;
meses[11]=31;
printf("Digite dia: ");
scanf("%d",&iDia);
printf("Digite mes: ");
scanf("%d",&iMes);
for(c=0;c<=iMes-1;c++)
{
tdias=tdias+meses[c];
}
printf("total dias hasta la fecha: %d",tdias);
Sleep(2000);
}