Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Un ao es bisiesto dura 366 das, en vez de los 365 de un ao comn. Ese da adicional se aade al final del mes ms corto, fechndose como 29 de febrero.
Un ao es bisiesto si es divisible entre 4, excepto el ltimo de cada siglo (aquel divisible por 100), salvo que este ltimo sea divisible por 400.
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,242198 das). Como el error es de 0,0003 das por ao, podra parecer que al cabo de tres mil aos se habr acumulado un da de error. Pero en realidad no sabemos exactamente cundo llegar el error a un da. La cifra de 365,2422 das por ao trpico no es del todo exacta, porque tanto la duracin del ao trpico, como la velocidad de rotacin de la tierra, van cambiando con los siglos, y de una manera que no es completamente predecible.
24 de febrero era el 5 da antes de las Calendas de Marzo; el 23 de febrero era el 6 da antes de las Calendas de Marzo. En los aos bisiestos se agregaba un da despus del 23, que era el bis-sexto antes de las Calendas de Marzo. Como nosotros ya no contamos las Calendas, nos resulta ms cmodo considerar que el da agregado es en realidad el ltimo del mes.
Algoritmo computacional
Un ao es bisiesto si es divisible entre 4, excepto aquellos divisibles entre 100 pero no entre 400. En programacin, el algoritmo para calcular si un ao es bisiesto es un algoritmo til para la realizacin de calendarios. Considrese las siguientes proposiciones o enunciados lgicos:
La
frmula
lgica
que
se
suele
usar
para
establecer
si
un
ao
es
bisiesto
sera
cuando En pseudocdigo:
sera ms eficiente.
if ao modulo 400 is 0 then ao_bisiesto else if ao modulo 100 is 0 then no_ao_bisiesto else if ao modulo 4 is 0 then ao_bisiesto else no_ao_bisiesto
En MATLAB sera:
x=input('x: '); if rem(x,400)==0 || (rem(x,100)~=0 && rem(x,4)==0) disp('ao bisiesto') else disp('ao no bisiesto') end
En Lenguaje R sera:
aobis <- function(x) { if ((x%%4==0 && x%%100 != 0) {'ao bisiesto'} else {'ao no bisiesto'} } || x%%400 == 0)
En Delphi Sera:
Result := (Ao mod 4 = 0) and ((Ao mod 100 <> 0) or (Ao mod 400 = 0));
En Java Sera: