Você está na página 1de 3

Algoritmo bisiesto (formula y calculo)

Un ao es bisiesto si es divisible por 4, excepto aquellos divisibles por 100 pero no por 400. En programacin, el algoritmo para calcular si un ao es bisiesto es un algoritmo til para la realizacin de calendarios. En lgica proposicional se resolvera del siguiente modo. Sea:

p: Es divisible entre 4 q: Es divisible entre 100 r: Es divisible entre 400

La frmula lgica que indica si un ao es bisiesto sera [p y q] [r] Es decir los aos que sean divisibles por 4 sern bisiestos; aunque no sern bisiestos si son divisibles entre 100 (como los aos 1700, 1800, 1900 y 2100) a no ser que sean divisibles por 400 (como los aos 1600, 2000 2400). En 400 aos debe haber 97 aos bisiestos, de esa manera el ao del calendario gregoriano se mantiene muy parecido al ao solar. As el ao gregoriano dura 365 das +1/4 -1/100 +1/400 = 365,2425 das (ms que el ao trpico que dura 365,2422 das). Lenguaje de Programacin Mtodo programado en C# bool anioBisiesto(int year) { return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0; } Mtodo programado en PHP $hoy = getdate(); // Generamos el arreglo con la fecha actual $inicio = getdate(mktime(0,0,0,$hoy[mon],1,$hoy[year])); // Generamos el arreglo con el primer da del mes if(($inicio[year]%4==0 && $inicio[year]%100!=0 )|| $inicio[year]%400==0) //evaluamos

{ }

return true; // devolvemos si es verdadero

Mtodo programado en Delphi 5. Sea A una variable Integer = Ao a analizar. Sea B una variable Booleana cuyo valor True=Bisiesto, False=No bisiesto. If A mod 4=0 then If A mod 100=0 then If A mod 400=0 then B:=True else B:=False else B:=True else B:=False

Como todo lenguaje de programacin de alto nivel, Delphi tiene una funcin para resolver lo anterior: IsLeapYear(A), que es una funcin Booleana cuyo valor True=Bisiesto, False=No bisiesto.

Mtodo programando en C++ #include <iostream> //cargamos librera using namespace std; //Para no tener que escribir a cada rato std int main() { int bisiesto; //declaramos la variable bisiesto cout<<"Ingrese el ao a consultar"<<endl; //Desplegamos en pantalla Ingrese el ao a consultar cin>> bisiesto; //Pedimos la variable bisiesto por teclado al usuario if((bisiesto%4==0 && bisiesto%100 != 0) || bisiesto%400==0) //Vemos si el ao es bisiesto { cout<<"Es bisiesto"<<endl; //Desplegamos en pantalla es bisiesto }

else //Si la condicional anterior es falsa entonces el ao no es bisiesto { cout<<"No es bisiesto"<<endl; //Desplegamos en pantalla no es bisiesto } return 0; //retornamos 0 para saber que el programa termino correctamente } Diagrama de flujo

Você também pode gostar