cuadrante pseint

Iniciado por winnipu, 26 Noviembre 2012, 02:11 AM

0 Miembros y 1 Visitante están viendo este tema.

winnipu

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