• Lenguaje

    Java usando Scanner

  • 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
import java.util.Scanner;

public class DiaAnterior {

    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int anno, anno_anterior, dia, dia_anterior, mes;
        int mes_anterior;
        System.out.print("Ingresa el valor de anno: ");
        anno = in.nextInt();
        in.nextLine();
        System.out.print("Ingresa el valor de dia: ");
        dia = in.nextInt();
        in.nextLine();
        System.out.print("Ingresa el valor de mes: ");
        mes = in.nextInt();
        in.nextLine();
        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;
            System.out.println("D\u00EDa incorrecto");
        }
        if(mes<1||mes>12)
        {
            dia_anterior=0;
            mes_anterior=0;
            anno_anterior=0;
            System.out.println("Mes incorrecto");
        }
        if(anno<1000||anno>=10000)
        {
            dia_anterior=0;
            mes_anterior=0;
            anno_anterior=0;
            System.out.println("A\u00F1o incorrecto");
        }
        System.out.println("Valor de anno anterior: " + anno_anterior);
        System.out.println("Valor de dia anterior: " + dia_anterior);
        System.out.println("Valor de mes anterior: " + mes_anterior);
    }

}