-
Lenguaje
PSeInt (Pseudocódigo)
-
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
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
Proceso DiaAnterior
Escribir Sin Saltar "Ingresa el valor de anno:";
Leer anno;
Escribir Sin Saltar "Ingresa el valor de dia:";
Leer dia;
Escribir Sin Saltar "Ingresa el valor de mes:";
Leer mes;
Si dia = 1 Entonces
dia_anterior <- 31;
mes_anterior <- mes-1;
SiNo
dia_anterior <- dia-1;
mes_anterior <- mes;
FinSi
Si dia = 1 Y (mes = 4 O mes = 6 O mes = 9 O mes = 11) Entonces
dia_anterior <- 30;
FinSi
Si dia = 1 Y mes = 2 Entonces
dia_anterior <- 28;
FinSi
Si dia = 1 Y mes = 2 Y (((anno MOD 4 = 0) Y (anno MOD 100 <> 0)) O anno MOD 400 = 0) Entonces
dia_anterior <- 29;
FinSi
Si mes_anterior = 0 Entonces
anno_anterior <- anno-1;
mes_anterior <- 12;
SiNo
anno_anterior <- anno;
FinSi
Si dia<1 O dia>31 O (mes = 2 Y dia>29) O ((mes = 4 O mes = 6 O mes = 9 O mes = 11) Y dia = 31) O (mes = 2 Y dia = 29 Y (anno MOD 4 <> 0 O anno MOD 100 = 0) Y anno MOD 400 <> 0) Entonces
dia_anterior <- 0;
mes_anterior <- 0;
anno_anterior <- 0;
Escribir "Día incorrecto";
FinSi
Si mes<1 O mes>12 Entonces
dia_anterior <- 0;
mes_anterior <- 0;
anno_anterior <- 0;
Escribir "Mes incorrecto";
FinSi
Si anno<1000 O anno>=10000 Entonces
dia_anterior <- 0;
mes_anterior <- 0;
anno_anterior <- 0;
Escribir "Año incorrecto";
FinSi
Escribir "Valor de anno anterior: ", anno_anterior;
Escribir "Valor de dia anterior: ", dia_anterior;
Escribir "Valor de mes anterior: ", mes_anterior;
FinProceso
Escribir Sin Saltar "Ingresa el valor de anno:";
Leer anno;
Escribir Sin Saltar "Ingresa el valor de dia:";
Leer dia;
Escribir Sin Saltar "Ingresa el valor de mes:";
Leer mes;
Si dia = 1 Entonces
dia_anterior <- 31;
mes_anterior <- mes-1;
SiNo
dia_anterior <- dia-1;
mes_anterior <- mes;
FinSi
Si dia = 1 Y (mes = 4 O mes = 6 O mes = 9 O mes = 11) Entonces
dia_anterior <- 30;
FinSi
Si dia = 1 Y mes = 2 Entonces
dia_anterior <- 28;
FinSi
Si dia = 1 Y mes = 2 Y (((anno MOD 4 = 0) Y (anno MOD 100 <> 0)) O anno MOD 400 = 0) Entonces
dia_anterior <- 29;
FinSi
Si mes_anterior = 0 Entonces
anno_anterior <- anno-1;
mes_anterior <- 12;
SiNo
anno_anterior <- anno;
FinSi
Si dia<1 O dia>31 O (mes = 2 Y dia>29) O ((mes = 4 O mes = 6 O mes = 9 O mes = 11) Y dia = 31) O (mes = 2 Y dia = 29 Y (anno MOD 4 <> 0 O anno MOD 100 = 0) Y anno MOD 400 <> 0) Entonces
dia_anterior <- 0;
mes_anterior <- 0;
anno_anterior <- 0;
Escribir "Día incorrecto";
FinSi
Si mes<1 O mes>12 Entonces
dia_anterior <- 0;
mes_anterior <- 0;
anno_anterior <- 0;
Escribir "Mes incorrecto";
FinSi
Si anno<1000 O anno>=10000 Entonces
dia_anterior <- 0;
mes_anterior <- 0;
anno_anterior <- 0;
Escribir "Año incorrecto";
FinSi
Escribir "Valor de anno anterior: ", anno_anterior;
Escribir "Valor de dia anterior: ", dia_anterior;
Escribir "Valor de mes anterior: ", mes_anterior;
FinProceso