Saber si un año es bisiesto

Me gustaría saber cómo realizar un cálculo para saber si un año es bisiesto.

La FAQ Saber si un año es bisiesto tiene

Pertenece a la categoría:
Pregunta
Me gustaría saber cómo realizar un cálculo para saber si un año es bisiesto.
Respuesta de Miguel Angel Alvarez
Los años divisibles por 4 son bisiestos, pero cada 400 años se deben eliminar 3 bisiestos. Para ello, no son bisiestos los que se dividen por 100, menos los que se dividen por 400, que sí son bisitestos.





Dicho de otro modo, son bisiestos todos los años divisibles por 4, excluyendo los que sean divisibles por 100, pero no los que sean divisibles por 400.





En pseudocódigo se calcularía así:





SI ((año divisible por 4) Y ((año no divisible por 100) O (año divisible por 400))) ENTONCES


    es bisiesto


SINO


    no es bisiesto




En ASP, el código sería el siguiente:







if ((ano mod 4)=0) and ((ano mod 100)<>0 or (ano mod 400)=0) then


...




En Javascript y en lenguajes de sintaxis similar como C, Java o PHP:






if ((ano % 4 == 0) && ((ano % 100 != 0) || (ano % 400 == 0))


...

Volver al árbol de categoríasVolver al árbol de categorías

Comentarios

MARTIN OSUNA BAÑUELOS

24/1/2006
Introduce tu comentario...
HOLA¡

TENGO UNA DUDA DE EL POR QUE EL AÑO 3600 NO ES AÑO BISIESTO. LA REGLA DICE QUE SERÁ UN AÑO BISIESTO AQUEL AÑO QUE SEA DIVISIBLE ENTRE 4, SI ES FIN DE SIGLO DEBERÁ SER DIVISIBLE ENTRE 400 A EXCEPCION DEL AÑO 3600.

¿POR QUÉ EL AÑO 3600 NO ES AÑO BISIESTO, SI ES FIN DE SIGLO Y ES DIVISIBLE ENTRE 400?

GRACIAS POR SU ATENCIÓN

MARTIN OSUNA BAÑUELOS

Ulysses Nafate

25/10/2006
Este codigo lo realice en C++ y esta perfecto, aunque el comentario de que el año 3600 sera no bisiesto es por que 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-3/400=365,2425 días (más que el año trópico que dura 365,2422 días).

Como el error es de 0,0003 días por año, podría parecer que al cabo de tres mil años se habrá acumulado un día de error. Pero en realidad no sabemos exactamente cuándo llegará el error a un día. La cifra de 365,2422 dias por año trópico no es del todo exacta, porque tanto la duración del año trópico, como la velocidad de rotación de la tierra, van cambiando con los siglos, y de una manera que no es completamente predecible.

Por lo cual existen versiones que indican que ese día se descontará el año 3600, que no será un año bisiesto.

Saludos!

-

12/4/2007
Te falta un paréntesis hommmbreeee
if ((ano%4 == 0) && ((ano%100 != 0) || (ano%400 == 0)))

alejo

26/11/2007
esta es una manera mas sencilla amigos utilizando clases

function mes($ano, $mes){

$ano =2008;
$mes =2;

//Defino Arreglo que contenga todos los meses del año y en la posicion 1 calculo su mod entre//
//año/4, su mod lo igualo con 0, si es cero febrero es 28 de lo contrario febrero es 29(bisiesto)//

$arreglomes = array();
$arreglomes = array(31,28 +($ano % 4 == 0),31,30,31,30,31,31,30,31,30,31);

$pos=1;
echo"$arreglomes[$pos]";//imprimo el resultado

}

espero que les sirva recuerden que el algebra de bool es muy poderosa chaooo

Gonzalo

28/11/2007
Vamos a ver: año bisiesto (según el wikipedia) es aquel que (es divisible por 4 y no lo es por 100) o ( bien si es divisible por 100 y tambien por 400)

con lo que en php quedaría:

if (((ano % 4 == 0) && (ano % 100 != 0)) || ((ano % 100 == 0) && (ano % 400 == 0))) echo "Es año bisiesto <br>";

PedroLosada

20/10/2008
en la opción para C falta un paréntesis al final, lo demás es más que correcto.
if ((ano%4==0) && ((ano%100!=0)||(ano%400==0)))

Herik

02/12/2008
Que tal!, me parece efectiva la solución para saber si un año es bisiesto o no, yo lo necesitaba en PL/SQL pero con la explicación basto para desarrollar la función. Aqui anexo la función en PL por si algún día la requieran...nos vermox....

FUNCTION f_es_anio_bisiesto
(
pe_fecha IN DATE
)
RETURN BOOLEAN
IS
--
l_anio NUMBER;
l_es_divisible_4 BOOLEAN;
l_es_divisible_100 BOOLEAN;
l_es_divisible_400 BOOLEAN;
l_es_bisiesto BOOLEAN;
--
BEGIN
--
l_anio := TO_NUMBER ( TO_CHAR ( pe_fecha , 'YYYY' ) );
--
l_es_divisible_4 := ( MOD ( l_anio , 4 ) = 0 );
l_es_divisible_100 := ( MOD ( l_anio , 100 ) = 0 );
l_es_divisible_400 := ( MOD ( l_anio , 400 ) = 0 );
--
IF ( ( l_es_divisible_4 )
AND
( NOT l_es_divisible_100
OR l_es_divisible_400 )
)
THEN
--
l_es_bisiesto := TRUE;
--
ELSE
--
l_es_bisiesto := FALSE;
--
END IF;
--
RETURN l_es_bisiesto;
--
EXCEPTION
WHEN OTHERS
THEN
RETURN FALSE;
--
END f_es_anio_bisiesto;

TALTOS

30/12/2008
YO TAMBIEN TENGO UNA DUDA SOBRE EL AÑO 3600 SI ES BISIESTO O NO , ME QUITA EL SUEÑO POR QUE CREO QUE EN EL 3600 TENGO QUE IR A COMPRAR AL SUPER Y NO SE SI IR EL 29 DE FEBRERO O EL 1 DE MARZO , POR FAVOR AYUDARME ESTOY CON ATAQUE DE ASIENDAD Y ES UNA PENA MUY GRANDE EL NO SABERLO , LA COMPRA DEL SUPER DEL AÑO 3600 PELIGRA Y YO NO SE QUE HACER
MUCHAS GRACIAS

a che vaia

11/3/2009
yo lo encuentro como las *%$#@!

Flopy :p

28/4/2009
Año Bisiesto
GRACIAS POR LA DATA! FUISTE MI PRIMERA ELECION EN GOOGLE Y LA MAS PRACTICA DE TODO!! DesearrolladorWeb ESTAS EN Mis Favoritos!!! (Apesar que aun siga programando en COBOL JEJJE)

Cesar

02/2/2010
LA VERDADERA FORMA
No se compliquen asi, la unica forma de hallar un ano bisiesto es?
El ano que termina en 2 ceros:
Ej.:
1800
3600(que por cierto si es bisiesto)
O que sus dos ultimas cifras sean divisibles entre 4:
Ej.:
1824
2012
Saludos.

MODE323

19/2/2010
CODIGO HECHO EN "JCREATOR" Y "BLUEJ"
//ELABORADO POR CESAR MODESTO TELLO DE LEON.
//lic. en informatica "TECNOLOGICO DE MATEHUALA"
//MATEHUALA, SAN LUIS POTOSI, MEXICO.
//NOS DICE SI UN AÑO ES BISIESTO O NO
import java.io.*;
public class bisiesto
{public static void main (String []ar) throws IOException
{BufferedReader in = new BufferedReader (new InputStreamReader (System.in));

System.out.println("Programa para verificar SI un año fue BISIESTO o NO");
System.out.println("Digite el año deseado");
int year = Integer.parseInt(in.readLine());
if ((year%4 == 0) && ((year%100 != 0) || (year%400 == 0)))
{System.out.println("EL AÑO "+year+" SI ES BISIESTO");}
else{System.out.println("EL AÑO "+year+" NO ES BISIESTO");}
}
}

OtaKUCHARA

08/3/2010
pequeños errores
el algoritmo (si se le puede llamar asi) de cesar esta mal formulado, pues segun el el año 1400 deveria ser biciesto y no lo es, y el otro pues si tratan de validar el año 100 que por cierto tambien es biciesto les mandara error xD
Aunque supongo que en el espacio temparal "actual" son validos ambos, y el rollo del 3600 es algo más astrologico que logico-matematico así que solo es interesante como dato curioso =D y para hacer la tarea de compiladores

ingrid marcela veazco

08/3/2010
????????????
pero si el y el 4 yy el
400 son biciestos y se pueden dividir para ser biciestoy el 100 porke no el 1 oo eel 10 si esta 100 puess se puede

Amaranto

08/5/2010
Año bisiesto
No tengo idea de como llevarlo a pseudocódigo

Adriana

23/7/2010
la explicación de porque el año 3600 no puede llegar a no ser bisiesto
ME FASCINO!!!

pibe

30/10/2010
año bisiesto 3600 descontado
Porque en su lugar no se descuenta el año 3200?

JESUS ACOSTA

14/11/2010
saber
cuando o cada que tiempo se acumula un dia mas despues del año bisiesto, hace algun tiempo n la escuela secundaria un profesor nos manifesto que febrero tendria 30 dias, es cierto. gracias

jaime

10/3/2011
trabajo
- Un estudiante de Biología Marina solo se puede graduar si su nota definitiva es mayor o igual a 3.7, pero además si ha cumplido con al menos 30 horas de buceo y si ha recolectado al menos 100 kilos de basura del mar. Muestre un mensaje que diga si un estudiante de ese programa se gradúa o no.

OSCAR ANTONIO

11/4/2011
ERES UN PENDEJO
SI TU MAMA TRABAJA EN FIESTA CHARRA (ENTONCES ES PUTA)
Y SI NO TRABAJA (ENTONCES NO ES PUTA!!!!!!)

carla

23/5/2011
if
en el programa dfd no reconoce <> diferencia

Allan Armas

01/9/2011
resolver matematicamente el calculo de cuantos dias de vida tiene
que alguien me ayude a resolver matematicamente el calculo de cuantos dias de vida tiene alguna persona basado en años bisciestos.
GRACIAS

Gerardo Almodóvar

03/6/2012
Año bisiesto
Son bisiestos los años cuyas dos últimas cifras forman un número divisible por 4. Si el año termina en dos ceros, se suprimen éstos y si el número formado por las cifras que quedan es divisible por 4, el año es bisiesto. Así de simple.

mavb

10/7/2012
fecha del sistema
mejor pregunta la fecha del sistema del año en cuestion y esta te dira si en ese año cae el dia 29, ya si arreglan eso de que no es biciseto o si el año 3600 tu codigo funcionara si es que se sigue usando XD.

Gerardo Almodóvar

01/8/2012
Modo de averiguar si un año es bisiesto
Un año es bisiesto cuando sus dos últimas cifras son divisibles por 4.
Cuando el número del año termina en dos ceros, será bisiesto si suprimidos los dos ceros, el número que queda es divisible por 4.
No hay más.

Gerardo Almodóvar

01/8/2012
Año bisiesto
El año 3600 será bisiesto, porque al suprimir los dos ceros, el número que queda, 36, es divisible por 4.

luis

01/8/2013
help me
Preguntar la fecha con el formato día, mes, año y que me imprima esa fecha
y el día siguiente utilizando switch e IF usando puras sentencias
FAQ relacionadas

Para ver más FAQ relacionadas accede a las categorías:

Volver al árbol de categoríasVolver al árbol de categorías