domingo, 28 de septiembre de 2014

Validar fecha y año bisiesto

valida_fecha.psc
Proceso valida_fecha

    Definir año,mes,dia,res4,res100,res400,nCriteriosCumplidos Como Entero;

    Definir res Como Caracter;

    Definir vrd Como Logico;

    vrd<-Falso;

    nCriteriosCumplidos=0;

    Repetir

        Limpiar Pantalla;
        ESCRIBIR "AÑO:";

        LEER año;

        ESCRIBIR "MES:";

        LEER mes;

        ESCRIBIR "DIA:";

        LEER dia;

        

        res4<-año mod 4;

        res100<-año mod 100;

        res400<-año mod 400;

        

        Si (año>=1) Entonces

            Si (res4==0) Entonces

                Si ((res100==0 y res400==0)o(res100<>0 y res400<>0)) Entonces

                    vrd=Verdadero;

                    ESCRIBIR "Año biciesto";

                Sino

                    

                Fin Si

            Sino

                ESCRIBIR "Año normal";

            Fin Si
            nCriteriosCumplidos=nCriteriosCumplidos+1;        
        Fin Si
        

        Segun mes Hacer

            1,3,5,7,8,10,12:
                si(dia>=1 y dia<=31)

                    ESCRIBIR "LA FECHA: ",año,"/",mes,"/",dia," SI es valida";

                Sino

                    ESCRIBIR "LA FECHA: ",año,"/",mes,"/",dia," NO es valida";

                FinSi
            2:
                SI(vrd==verdadero)

                    si(dia>=1 y dia<=29)

                        ESCRIBIR "LA FECHA: ",año,"/",mes,"/",dia," SI es valida";

                    Sino

                        ESCRIBIR "LA FECHA: ",año,"/",mes,"/",dia," NO es valida";

                    FinSi
                
                Sino
                    si(dia>=1 y dia<=28)

                        ESCRIBIR "LA FECHA: ",año,"/",mes,"/",dia," SI es valida";

                    Sino
                        ESCRIBIR "LA FECHA: ",año,"/",mes,"/",dia," NO es valida";

                    FinSi
                FinSi
            4,6,9,11:
                si(dia>=1 y dia<=30)

                    ESCRIBIR "LA FECHA: ",año,"/",mes,"/",dia," SI es valida";

                Sino

                    ESCRIBIR "LA FECHA: ",año,"/",mes,"/",dia," NO es valida";

                FinSi
            De Otro Modo:

                ESCRIBIR "LA FECHA: ",año,"/",mes,"/",dia," NO es valida";
            Fin Segun

            
            vrd<-Falso;

        ESCRIBIR "DESEAS SEGUIR ? n=No: ";

        LEER res;
    Hasta Que (res=='N' o res=='n')
FinProceso

2 comentarios: