Programa en C para Calcular la Edad a partir de la Fecha de Nacimiento
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.