Hola, vereis estoy intentando de hacer conseguir un pseudocodigo con pseint para hacer un cuadrante de trabajo. Se supone que el cuadrante esta formado por una rueda de 7 semanas, en la que hay que trabajar algunos de mañana otros de tarde otros de noche y otros se descansa. Me gustaria que al introducirle una fecha del futuro nos diga si ese dia es lunes, martes... domingo, y ademas nos diga de que turno nos toca trabajar o si descansamos. Hasta el momento creo que lo tengo bastante bien desarrollado, pero me da un error. Si le introduzco una fecha del año 2016 me da un dia mas de lo que deberia. En el resto de años todo funciona correctamente. No entiendo porque me falla solo en ese año. Alguna idea?
Proceso sin_titulo
Dimension d[49];
definir d como Caracter;
Definir i,A,M,dia,da,avi,mi como Entero;
Definir resultado como Real;
d[0]="TARDE Martes";
d[1]="TARDE Miercoles";
d[2]="TARDE Jueves";
d[3]="TARDE Viernes";
d[4]="TARDE Sabado";
d[5]="TARDE Domingo";
d[6]="DESCANSO Lunes";
d[7]="DESCANSO Martes";
d[8]="MAÑANA Miercoles";
d[9]="MAÑANA Jueves";
d[10]="MAÑANA Viernes";
d[11]="DESCANSO Sabado";
d[12]="DESCANSO Domingo";
d[13]="MAÑANA Lunes";
d[14]="MAÑANA Martes";
d[15]="MAÑANA Miercoles";
d[16]="MAÑANA Jueves";
d[17]="NOCHE Viernes";
d[18]="NOCHE Sabado";
d[19]="NOCHE Domingo";
d[20]="LIBRANZA Lunes";
d[21]="LIBRANZA Martes";
d[22]="LIBRANZA Miercoles";
d[23]="LIBRANZA Jueves";
d[24]="LIBRANZA Viernes";
d[25]="LIBRANZA Sabado";
d[26]="LIBRANZA Domingo";
d[27]="NOCHE Lunes";
d[28]="NOCHE Martes";
d[29]="NOCHE Miercoles";
d[30]="NOCHE Jueves";
d[31]="DESCANSO Viernes";
d[32]="DESCANSO Sabado";
d[33]="DESCANSO Domingo";
d[34]="MAÑANA Lunes";
d[35]="MAÑANA Martes";
d[36]="MAÑANA Miercoles";
d[37]="MAÑANA Jueves";
d[38]="DESCANSO Viernes";
d[39]="MAÑANA TELEFONO Sabado";
d[40]="MAÑANA TELEFONO Domingo";
d[41]="MAÑANA TELEFONO Lunes";
d[42]="MAÑANA TELEFONO Martes";
d[43]="MAÑANA TELEFONO Miercoles";
d[44]="MAÑANA TELEFONO Jueves";
d[45]="MAÑANA TELEFONO Viernes";
d[46]="DESCANSO Sabado";
d[47]="DESCANSO Domingo";
d[48]="TARDE Lunes";
Escribir "Indica la fecha quieres saber?";
Escribir "Año";
leer A;
Escribir "Mes";
leer M;
Escribir "Dia";
leer dia;
Si A%4=0 Entonces
da<-(A-2013)*365+1;
Sino
da<-(A-2013)*365;
FinSi
para mi<- 1 hasta m-1 Hacer
si mi = 2 Entonces
si (a%4) = 0 entonces
da <- da + 29;
sino
da <- da + 28;
finsi
sino
si mi = 4 | mi = 6 | mi = 9 | mi = 11 entonces
da <- da + 30;
sino
da <- da + 31;
finsi
FinSi
FinPara
da<-da+(dia-1);
resultado<-da%49;
Escribir resultado;
Escribir d[resultado];
FinProceso