Programa en C para Calcular la Edad a partir de la Fecha de Nacimiento

Informática y Telecomunicaciones3,25 KB

A continuación se muestra un programa en lenguaje C que solicita la fecha de nacimiento y la fecha actual, valida los datos introducidos y calcula la edad de la persona.

Código fuente

#include <stdio.h>
#include <conio.h>

int main()
{
  int dia1, mes1, anyo1, dia2, mes2, anyo2, edad;
  printf("Introduzca la fecha de nacimiento: ");
  scanf("%d%d%d", &dia1, &mes1, &anyo1);
  printf("Introduzca la fecha actual: ");
  scanf("%d%d%d", &dia2, &mes2, &anyo2);
  if ( dia1 < 1 || dia1 > 31 )
    printf("ERROR: El día de nacimiento está mal.\n");
  else if ( mes1 < 1 || mes1 > 12 )
    printf("ERROR: El mes de nacimiento está mal.\n");
  else if ( dia2 < 1 || dia2 > 31 )
    printf("ERROR: El día actual está mal.\n");
  else if ( mes2 < 1 || mes2 > 12 )
    printf("ERROR: El mes actual está mal.\n");
  else {
    /* Cálculo de la edad */
    edad = anyo2 - anyo1;
    /* Si todavía no ha sido su cumpleaños, es un año menos */
    if ( mes2 < mes1 || (mes2 == mes1 && dia2 < dia1) )
      edad--;
    printf("\nComo nació el %d de ", dia1);
    switch ( mes1 ) {
      case 1: printf("enero"); break;
      case 2: printf("febrero"); break;
      case 3: printf("marzo"); break;
      case 4: printf("abril"); break;
      case 5: printf("mayo"); break;
      case 6: printf("junio"); break;
      case 7: printf("julio"); break;
      case 8: printf("agosto"); break;
      case 9: printf("septiembre"); break;
      case 10: printf("octubre"); break;
      case 11: printf("noviembre"); break;
      case 12: printf("diciembre"); break;
    }
    printf(" de %d y hoy es %d de ", anyo1, dia2);
    if ( mes2 == 1 ) printf("enero");
    else if ( mes2 == 2 ) printf("febrero");
    else if ( mes2 == 3 ) printf("marzo");
    else if ( mes2 == 4 ) printf("abril");
    else if ( mes2 == 5 ) printf("mayo");
    else if ( mes2 == 6 ) printf("junio");
    else if ( mes2 == 7 ) printf("julio");
    else if ( mes2 == 8 ) printf("agosto");
    else if ( mes2 == 9 ) printf("septiembre");
    else if ( mes2 == 10 ) printf("octubre");
    else if ( mes2 == 11 ) printf("noviembre");
    else printf("diciembre");
    printf(" de %d,\ntiene %d años.\n", anyo2, edad);
  }
  getch();
  return 0;
}

Descripción del funcionamiento

El programa realiza las siguientes tareas:

  • Solicita al usuario la fecha de nacimiento y la fecha actual.
  • Valida que los días estén entre 1 y 31 y que los meses estén entre 1 y 12.
  • Calcula la edad restando los años y descontando un año si el cumpleaños aún no ha llegado.
  • Muestra la fecha de nacimiento en formato textual, junto con la fecha actual y la edad.

Descargar

PDF Word HTML