Esto es ayuda a la comunidad, creí que sería sencillo de programar y así lo fue, sin embargo quería expresar una buena lógica a la hora de desarrollar este programita.
Es bien sabido que los días del año son 365 normalmente, pero existe un inconveniente llamado año bisiesto, seguramente has escuchado de él al menos una vez en tu vida, y quizá tengas amigos que apenas tienen como 3 o 4 años solamente por la sencilla razón de que su cumpleaños solo se puede festejar cada 4 años aproximadamente, y digo aproximada porque el año 200 aunque no lo crean no es año bisiesto, pero esa es otra historia.
Ok, me salí del tema un poco, el año tiene 365 días y 366 si es bisiesto. Y los programadores nos festejamos el día 256 del año, es decir el 13 de Septiembre (el 12 si el año es bisiesto), para que vayan pidiendo regalo para ese día. El motivo por el que el día 256 del año nos representa es porque ese día nacieron todas las flores... Mentira, es porque es la cantidad máxima que puede expresarse en 8 bits en el sistema binario 11111111 (255 y el 0 que se representa con 8 ceros).
Bien, ya tienes motivos para que este programa te interese.
Puntos a destacar para hacer el programa:
- Los meses tienen 30 y 31 días, a excepción de febrero que tiene 28 días naturalmente y 29 en año bisiesto.
- 365 o 366 días del año que deben obtenerse sumando todos los días de cada mes que conforman el año.
- No importa realmente el mes en curso para considerar el conteo de los días, es decir, si te dan una fecha de mayo (05 05 2000), debes sumar todos los días de los meses anteriores y luego sumar los 5 días de mayo, de la siguiente manera: enero + febrero + marzo + abril + [días de mayo].
- Considerar siempre sumarle un día a febrero en caso de que sea año bisiesto para no fallar.
- El año bisiesto se obtiene con la siguiente condición: (si año es divisible entre 4 y no divisible entre 100) O (si año es divisible entre 400)Que podemos representar así:
if((año % 4 == 0 && año % 100 != 0) || (año % 400 == 0))El símbolo "%" representa el residuo de una división entera, es decir, lo que sobra al dividir un número entre otro, así que si el residuo es cero significa que el número es divisible entre el otro número, por ejemplo 4 es divisible entre 2.
Ya, suficiente teoría, esto fue sencillo, ¿no?, ahora sí lo que todo estaban esperando, EL CÓDIGO.