Logo Espacio Linux       
Portada Taller Linux Descargas Foros Buscar Mapa del sitio Ayuda BlogEL
   Iniciar sesión | Registrarse    
 
Principal

Patrocinadores

Anuncios



Boletín Espacio Linux
Las novedades del sitio y el mundo Linux en tu email.


Sitios amigos

Blogs de miembros


Directorio de blogs | Registrarse
Los usuario registrados pueden crear su propio blog y escribir comentarios.

Años bisiestos


Por: zeka
Publicado el: 05-05-2008 @ 07:45 am


Cuando nos preguntan que es un año bisiesto muchos reponderemos que es aquel en el cual el mes de Febrero tiene 29 días. Si por otra parte la pregunta va dirigida con relación a su periodicidad, la respuesta posiblemente sería que éstos se presentan cuando la cifra correspondiente al año es divisible por cuatro. Sin embargo, eso no es enteramente cierto. Los años 1800, 1900 y 2000 son todos ellos divisibles por 4 y, sin embargo, sólo el 2000 fue bisiesto. ¿Qué es lo que falta entonces en este planteamiento? La razón (complementada con la lógica de C++ entre paréntesis) es que en realidad los años bisiestos son aquellos que son divisibles entre 4 (year%4 == 0) y (&&) no son divisibles entre 100 (year%100 !=0) ó (||) son divisibles entre 400 (year%400 == 0). Los años de 1800 y 1900, aunque divisibles por 4, son excluidos porque son divisibles por 100 y no son divisibles por 400. Por eso no fueron bisiestos. El próximo año bisiesto divisible entre 400 será el 2400; muy lejos de nuestras espectativas. Sin entrar en consideraciones astronómicas del porqué de la necesidad de establecer los años bisiestos en nuestro calendario, nos referiremos más bien al porque de nuestro interés en ellos. Si tenemos una data correspondiente a elementos diarios de clima agrupados por años, para que estos se lean y procesen de la manera adecuada se debe tener en consideración los años bisiestos.

Lo anterior se logra con una simple función booleana en C++ (este tipo no está contemplado en C). El código sería el siguiente:

bool bisiesto(int year) {

return year%4 == 0 && year%100 !=0 || year%400 == 0;

}


El resultado que devuelve la función sería 1 (bisiesto) ó 0 (no bisiesto) y con esto se implementa el control en el programa principal para leer o escribir valores en pantalla/archivos con la secuencia adecuada, es decir, Febrero con 29 días y el año con 366 días en los bisiestos y Febrero con 28 días y el año con 365 días en los considerados "normales". Parece una tontería pero si no lo toman en cuenta es posible que obtengan resultados muy diferentes a los esperados.




Ultima actualización el 05-05-2008 @ 08:43 am




Añadir un comentario
Añadir un comentario
Ver más artículos
Ver más artículos

Comentarios

Por: p4bl1t0     Publicado el 05-11-2008 @ 05:10 pm

Muy buen aporte no sabia lo de los años bisiestos
Por: zeka     Publicado el 05-14-2008 @ 08:12 am

Gracias. Aunque esta función yo la implemento en programas principales orientados a los aspectos climáticos, los programadores de otras áreas, por ejemplo de nóminas, también deben verse en la obligación de implementar rutinas similares en los lenguajes que manejen. La gente también paga y cobra los días 29 de Febrero; aunque sólo empresas de muy amplía trayectoria (con más de 108 años) tendrían que preocuparse de que 1900 no fue bisiesto.
Journal ©
 



Copyright | Términos de uso | Política de privacidad | Publicidad | Contáctanos | Blog