Download Algoritmo bisiesto (formula y calculo)

Document related concepts

Año bisiesto wikipedia , lookup

Calendario juliano proléptico wikipedia , lookup

29 de febrero wikipedia , lookup

Calendario etíope wikipedia , lookup

Calendario gregoriano wikipedia , lookup

Transcript
Algoritmo bisiesto (formula y calculo)
Un año es bisiesto si es divisible por 4, excepto aquellos divisibles por 100 pero
no por 400.
En programación, el algoritmo para calcular si un año es bisiesto es un
algoritmo útil para la realización de calendarios.
En lógica proposicional se resolvería del siguiente modo. Sea:



p: Es divisible entre 4
q: Es divisible entre 100
r: Es divisible entre 400
La fórmula lógica que indica si un año es bisiesto sería [p y ¬q] ó [r]
Es decir los años que sean divisibles por 4 serán bisiestos; aunque no serán
bisiestos si son divisibles entre 100 (como los años 1700, 1800, 1900 y 2100) a
no ser que sean divisibles por 400 (como los años 1600, 2000 ó 2400). En 400
años debe haber 97 años bisiestos, de esa manera el año del calendario
gregoriano se mantiene muy parecido al año solar. Así el año gregoriano dura
365 días +1/4 -1/100 +1/400 = 365,2425 días (más que el año trópico que dura
365,2422 días).
Lenguaje de Programación
Método programado en C#
bool anioBisiesto(int year) {
return (year % 4 == 0 && year % 100 != 0) || year % 400 == 0;
}
Método 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 día del mes
if(($inicio[year]%4==0 && $inicio[year]%100!=0 )|| $inicio[year]%400==0)
//evaluamos
{
return true; // devolvemos si es verdadero
}
Método programado en Delphi 5. Sea A una variable Integer = Año 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 programación de alto nivel, Delphi tiene una función
para resolver lo anterior: IsLeapYear(A), que es una función Booleana cuyo
valor True=Bisiesto, False=No bisiesto.
Método programando en C++
#include <iostream> //cargamos librería
using namespace std; //Para no tener que escribir a cada rato std
int main()
{
int bisiesto;
//declaramos la variable bisiesto
cout<<"Ingrese el año a consultar"<<endl; //Desplegamos en pantalla Ingrese el
año 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
año es bisiesto
{
cout<<"Es bisiesto"<<endl;
//Desplegamos en pantalla es bisiesto
}
else
//Si la condicional anterior es falsa entonces el año
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