-
Lenguaje
PSeInt (Pseudocódigo)
-
Descripción
Determine el día de la semana de cualquier fecha desde enero de 1700.
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
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
Proceso DiaDeLaSemanaDeCualquierFecha
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 (anno MOD 4 = 0 Y anno MOD 100 <> 0) O anno MOD 400 = 0 Entonces
bisiesto <- 1;
SiNo
bisiesto <- 0;
FinSi
modulo <- 0;
Si (bisiesto = 0 Y mes = 5) O (bisiesto = 1 Y mes = 10) Entonces
modulo <- 1;
FinSi
Si (bisiesto = 0 Y mes = 8) O (bisiesto = 1 Y mes = 5) Entonces
modulo <- 2;
FinSi
Si (bisiesto = 0 Y (mes = 2 O mes = 3 O mes = 11)) O (bisiesto = 1 Y (mes = 2 O mes = 8)) Entonces
modulo <- 3;
FinSi
Si (bisiesto = 0 Y mes = 6) O (bisiesto = 1 Y (mes = 3 O mes = 11)) Entonces
modulo <- 4;
FinSi
Si (bisiesto = 0 Y (mes = 9 O mes = 12)) O (bisiesto = 1 Y mes = 6) Entonces
modulo <- 5;
FinSi
Si (bisiesto = 0 Y (mes = 4 O mes = 7)) O (bisiesto = 1 Y (mes = 9 O mes = 12)) Entonces
modulo <- 6;
FinSi
numero <- ((anno-1) MOD 7+((anno-1)/4-3*((anno-1)/100+1)/4) MOD 7+modulo+dia MOD 7) MOD 7;
Si numero = 0 Entonces
Escribir "Domingo";
FinSi
Si numero = 1 Entonces
Escribir "Lunes";
FinSi
Si numero = 2 Entonces
Escribir "Martes";
FinSi
Si numero = 3 Entonces
Escribir "Miércoles";
FinSi
Si numero = 4 Entonces
Escribir "Jueves";
FinSi
Si numero = 5 Entonces
Escribir "Viernes";
FinSi
Si numero = 6 Entonces
Escribir "Sábado";
FinSi
Escribir "Valor de bisiesto: ", bisiesto;
Escribir "Valor de modulo: ", modulo;
Escribir "Valor de numero: ", numero;
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 (anno MOD 4 = 0 Y anno MOD 100 <> 0) O anno MOD 400 = 0 Entonces
bisiesto <- 1;
SiNo
bisiesto <- 0;
FinSi
modulo <- 0;
Si (bisiesto = 0 Y mes = 5) O (bisiesto = 1 Y mes = 10) Entonces
modulo <- 1;
FinSi
Si (bisiesto = 0 Y mes = 8) O (bisiesto = 1 Y mes = 5) Entonces
modulo <- 2;
FinSi
Si (bisiesto = 0 Y (mes = 2 O mes = 3 O mes = 11)) O (bisiesto = 1 Y (mes = 2 O mes = 8)) Entonces
modulo <- 3;
FinSi
Si (bisiesto = 0 Y mes = 6) O (bisiesto = 1 Y (mes = 3 O mes = 11)) Entonces
modulo <- 4;
FinSi
Si (bisiesto = 0 Y (mes = 9 O mes = 12)) O (bisiesto = 1 Y mes = 6) Entonces
modulo <- 5;
FinSi
Si (bisiesto = 0 Y (mes = 4 O mes = 7)) O (bisiesto = 1 Y (mes = 9 O mes = 12)) Entonces
modulo <- 6;
FinSi
numero <- ((anno-1) MOD 7+((anno-1)/4-3*((anno-1)/100+1)/4) MOD 7+modulo+dia MOD 7) MOD 7;
Si numero = 0 Entonces
Escribir "Domingo";
FinSi
Si numero = 1 Entonces
Escribir "Lunes";
FinSi
Si numero = 2 Entonces
Escribir "Martes";
FinSi
Si numero = 3 Entonces
Escribir "Miércoles";
FinSi
Si numero = 4 Entonces
Escribir "Jueves";
FinSi
Si numero = 5 Entonces
Escribir "Viernes";
FinSi
Si numero = 6 Entonces
Escribir "Sábado";
FinSi
Escribir "Valor de bisiesto: ", bisiesto;
Escribir "Valor de modulo: ", modulo;
Escribir "Valor de numero: ", numero;
FinProceso