viernes, 8 de octubre de 2010

[Programación] Programa en C que te dice los días que has vivido exactamente en "C"

Bueno, aquí os traigo un programa bastante interesante programado en C, el cuál escribiéndole la fecha de nacimiento y la fecha actual te calcula los días que has vivido. Programado en Dev-C++ (Windows).
Dentro de poco empezaré a postear un manual sobre como aprender a programar desde cero con C.

Continúa tras el salto...

Aquí el programa:

#include  //Librerías
#include
       
main()    {  //Método main
          int anio, mes, dia, anio2, mes2, dia2, cont=0, i, j;  //Declaración de Variables
          printf("\nIntroduce el año en que naciste: ");  //Lo que aparece en pantalla
          scanf("%i", &anio);  //Guarda lo que has escrito
          printf("\nIntroduce el mes en que naciste: ");
          scanf("%i", &mes);
          printf("\nIntroduce el dia en que naciste: ");
          scanf("%i", &dia);
          printf("\nIntroduce el año actual: ");
          scanf("%i", &anio2);
          printf("\nIntroduce el mes actual: ");
          scanf("%i", &mes2);
          printf("\nIntroduce el dia actual: ");
          scanf("%i", &dia2);


          //Años Vividos
          for (i=anio; i<=anio2-2; i++) {  //Bucle for
              if (i%4==0) {  //if
                 cont=cont+366;
              }
              else {
                 cont=cont+365; 
              }
          }


          //Primeros Meses Vividos
          for (i=mes+1; i<=12; i++) {
              switch(i) {
                 case 1: case 3: case 5: case 7: case 8: case 10: case 12:
                      cont=cont+31;
                 break;
                 case 4: case 6: case 9: case 11:
                      cont=cont+30;
                 break;
                 case 2:
                      if (anio%4==0) {
                         cont=cont+29;
                      }
                      else {
                         cont=cont+28;
                         }
                 break;
                 }
          }
          //Últimos Meses Vividos
          for (j=1; j<=mes2-1; j++) {
              switch(j) {
                 case 1: case 3: case 5: case 7: case 8: case 10: case 12:
                      cont=cont+31;
                 break;
                 case 4: case 6: case 9: case 11:
                      cont=cont+30;
                 break;
                 case 2:
                      if (anio%4==0) {
                         cont=cont+29;
                      }
                      else {
                         cont=cont+28;
                         }
                 break;
                 }
          }


          //Primeros Días Vividos
          switch (mes) {  //Opciones
              case 1: case 3: case 5: case 7: case 8: case 10: case 12:
                   cont=cont+(31-dia);
              break;
              case 4: case 6: case 9: case 11:
                   cont=cont+(30-dia);
              break;
              case 2:
                   if (anio%4==0) {
                      cont=cont+(29-dia);
                   }
                   else {
                      cont=cont+(28-dia);
                   }
              break;
          }
          //Últimos Días Vividos
          switch (mes2) {
              default:
                   cont=cont+dia2;
              break;
          }
          printf ("\n\nHas vivido: %i dias", cont);     
          getch(); //Para que no se cierre la pantalla al mostrar el resultado
}