• Lenguaje

    C

  • Descripción

    Pide el año, mes y día de nacimiento y calcula la edad con meses y días cumplidos

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main (void)
{
    int anno, mes, dia, annos, meses, dias;
    int dias_del_mes[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
    time_t tiempo;
    struct tm *hoy;
    tiempo = time (NULL);
    hoy  = localtime (&tiempo);
    hoy->tm_year += 1900;
    hoy->tm_mon++;
    printf ("Fecha actual: %04d/%02d/%02d\n\n", hoy->tm_year, hoy->tm_mon, hoy->tm_mday);
    do {
        printf ("Ingrese el a\244o de nacimiento: ");
        scanf ("%d", &anno);
        if (anno < 1900 || anno > hoy->tm_year)
            printf ("A\244o incorrecto.\n");
    } while (anno < 1900 || anno > hoy->tm_year);
    do {
        printf ("Ingrese el mes de nacimiento: ");
        scanf ("%d", &mes);
        if (mes < 1 || mes > 12)
            printf ("Mes incorrecto.\n");
    } while (mes < 1 || mes > 12);
    do {
        printf ("Ingrese el d\241a de nacimiento: ");
        scanf ("%d", &dia);
        if (dia < 1 || dia > dias_del_mes[mes])
            printf ("D\241a incorrecto.\n");
    } while (dia < 1 || dia > dias_del_mes[mes]);
    annos = hoy->tm_year - anno;
    meses = hoy->tm_mon  - mes;
    dias  = hoy->tm_mday - dia;
    if (dias<0)
    {
        dias += dias_del_mes[hoy->tm_mon];
        meses--;
    }
    if (meses<0)
    {
        meses += 12;
        annos--;
    }
    putchar ('\n');
    printf ("A\244os : %d\n", annos);
    printf ("Meses: %d\n"   , meses);
    printf ("D\241as : %d\n", dias );
    putchar ('\n');
    system ("pause");
    return EXIT_SUCCESS;
}