• Lenguaje

    C

  • Descripción

    Calcula la fecha del anterior día a partir de una fecha digitada desde el teclado por el usuario (dd, mm, aaaa) e imprimirla. (Tenga en cuenta los años bisiestos.), recuerde que sólo debe ingresar valores correctos, es decir no pueden haber meses de más de 31 días o años con más de 12 meses, se debe garantizar que el año este en el rango de 4 cifras. (en caso de no cumplir con las condiciones se debe mostrar los mensaje de error).

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
56
57
58
59
60
61
62
63
64
65
66
67
#include <stdio.h>
#include <stdlib.h>

int main (void)
{
    int anno, anno_anterior, dia, dia_anterior, mes;
    int mes_anterior;
    printf ("Ingresa el valor de anno: ");
    scanf ("%d", &anno);
    (void) getchar ();
    printf ("Ingresa el valor de dia: ");
    scanf ("%d", &dia);
    (void) getchar ();
    printf ("Ingresa el valor de mes: ");
    scanf ("%d", &mes);
    (void) getchar ();
    if(dia==1)
    {
        dia_anterior=31;
        mes_anterior=mes-1;
    }
    else
    {
        dia_anterior=dia-1;
        mes_anterior=mes;
    }
    if(dia==1&&(mes==4||mes==6||mes==9||mes==11))
        dia_anterior=30;
    if(dia==1&&mes==2)
        dia_anterior=28;
    if(dia==1&&mes==2&&(((anno%4==0)&&(anno%100!=0))||anno%400==0))
        dia_anterior=29;
    if(mes_anterior==0)
    {
        anno_anterior=anno-1;
        mes_anterior=12;
    }
    else
        anno_anterior=anno;
    if(dia<1||dia>31||(mes==2&&dia>29)||((mes==4||mes==6||mes==9||mes==11)&&dia==31)||(mes==2&&dia==29&&(anno%4!=0||anno%100==0)&&anno%400!=0))
    {
        dia_anterior=0;
        mes_anterior=0;
        anno_anterior=0;
        printf ("D\241a incorrecto\n");
    }
    if(mes<1||mes>12)
    {
        dia_anterior=0;
        mes_anterior=0;
        anno_anterior=0;
        printf ("Mes incorrecto\n");
    }
    if(anno<1000||anno>=10000)
    {
        dia_anterior=0;
        mes_anterior=0;
        anno_anterior=0;
        printf ("A\244o incorrecto\n");
    }
    printf ("Valor de anno anterior: %d\n", anno_anterior);
    printf ("Valor de dia anterior: %d\n", dia_anterior);
    printf ("Valor de mes anterior: %d\n", mes_anterior);
    putchar ('\n');
    system ("pause");
    return EXIT_SUCCESS;
}