CP IC Calculo Frec Dias

download CP IC Calculo Frec Dias

If you can't read please download the document

description

ERT

Transcript of CP IC Calculo Frec Dias

//****** LGICA PARA EL CLCULO DE DAS SEGN CALENDARIO ******// Recordar que tenemos las siguientes variables internas de finalizacin creadas en la rutina CP_Interrupcion_Corriente :// CP_FFD_ANHO ; CP_FFD_MES ; CP_FFD_DIA ; CP_FFD_HORA ; CP_FFD_MIN ; CP_FFD_SEG// La modificacin de las fechas dependern de la frecuencia que se introduzca desde el Oasys al tag: CP_FREC_REP// Donde si CP_FREC_REP = 1 ; la frecuencia ser diaria.// Donde si CP_FREC_REP = 2 ; la frecuencia ser interdiaria.// Donde si CP_FREC_REP = 7 ; la frecuencia ser semanal.// Donde si CP_FREC_REP = 30 ; la frecuencia ser mensual.// Para ENERO, MARZO, MAYO, JULIO, AGOSTO, OCTUBRE, DICIEMBRE IF (CP_FIC_MES=1) OR (CP_FIC_MES=3) OR (CP_FIC_MES=5) OR (CP_FIC_MES=7) OR (CP_FIC_MES=8) OR (CP_FIC_MES=10) THENIF CP_FIC_DIA + CP_FREC_REP>31 THEN CP_FIC_DIA:= CP_FIC_DIA + CP_FREC_REP - 31; CP_FIC_MES:= CP_FIC_MES + 1;ELSE CP_FIC_DIA:= CP_FIC_DIA + CP_FREC_REP;END_IF;END_IF;// Para ABRIL, JUNIO, SETIEMBRE, NOVIEMBREIF (CP_FIC_MES=4) OR (CP_FIC_MES=6) OR (CP_FIC_MES=9) OR (CP_FIC_MES=11)THENIF CP_FIC_DIA + CP_FREC_REP>30 THEN CP_FIC_DIA:= CP_FIC_DIA + CP_FREC_REP - 30; CP_FIC_MES:= CP_FIC_MES + 1;ELSE CP_FIC_DIA:= CP_FIC_DIA + CP_FREC_REP;END_IF;END_IF;// Para Febrero de 28 das;IF (CP_FIC_MES=2) AND ((RTU_DATE_TIME[0] MOD 4)>0) THEN IF CP_FIC_DIA + CP_FREC_REP>28 THEN CP_FIC_DIA:= CP_FIC_DIA + CP_FREC_REP - 28; CP_FIC_MES:= CP_FIC_MES + 1;ELSE CP_FIC_DIA:= CP_FIC_DIA + CP_FREC_REP;END_IF;END_IF;// Para Febrero de 29 das;IF (CP_FIC_MES=2) AND ((CP_FIC_ANHO MOD 4)=0) THEN IF CP_FIC_DIA + CP_FREC_REP>29 THEN CP_FIC_DIA:= CP_FIC_DIA + CP_FREC_REP - 29; CP_FIC_MES:= CP_FIC_MES + 1;ELSE CP_FIC_DIA:= CP_FIC_DIA + CP_FREC_REP;END_IF;END_IF;// Para DICIEMBREIF (CP_FIC_MES=12)THENIF CP_FIC_DIA + CP_FREC_REP>31 THEN CP_FIC_DIA:= CP_FIC_DIA + CP_FREC_REP - 31; CP_FIC_MES:= 1; CP_FIC_ANHO:= CP_FIC_ANHO + 1;ELSE CP_FIC_DIA:= CP_FIC_DIA + CP_FREC_REP;END_IF;END_IF;