Desafío de programación en La Naturaleza Del Software
Las condiciones del desafío son las siguientes:
-
Sólo habrá un ganador.
-
El Premio son dos copias impresas de mi libro La Naturaleza Del Software.
-
Para participar deben escribir un programa que se ejecute por lineas de comandos, y que reciba como argumento el año. Al correr debe escribir en la consola la fecha en que se celebrará el día del programador en ese año. La fecha debe indicar el día de la semana. Por ejemplo si ejecuto el programa con el parámetro 2016, el programa debe escribir en la consola: "El día del programador del año 2016 se celebrará el lunes 12 de septiembre".
-
El programa debe calcular cuál es el día 256 del año, es más, esto debe ser un parámetro interno del programa y debería poder modificarse, de modo que si decidimos que el día del programador es el día 128 ó el día 48 del año esto pueda modificarse fácilmente. (Esto es para evitar que calculen el día del programador como 12 ó 13 de septiembre según si el año es bisiesto).
-
Si el año es menor a 2002 el programa debe indicar que en esa fecha aún no se celebraba el día del programador.
-
Si el año ingresado es menor a 2009 el mensaje debe estar en ruso.
-
Si el el año ingresado está en el pasado el mensaje debe estar en pretérito (por ejemplo: ¨El día del programador en 2014 se celebró el sábado 13 de septiembre").
-
Si ejecutas el programa el mismo día, el programa debe decir "El día del programador se celebra hoy! Felicidades!".
-
Los concursantes deben enviar su programa realizando un pull request al siguiente repositorio github: https://github.com/lnds/dia-del-programador
-
Ganará el programa correcto más breve en cantidad de lineas de código. Para contar las lineas de código se ignorarán los comentarios. Da lo mismo el lenguaje en que esté implementado. Si hay un empate en la cantidad de lineas de código ganará el que tenga la menor complejidad de acuerdo a las métricas de Halstead.
-
Tienen dos semanas de plazo para entregar sus soluciones.
-
Sobre el pull request: es conveniente que dejeb sus contribuciones en un directorio o subcarpeta con su nombre de usuario en github.
Gracias.