Tu desafío es extremadamente simple. Dado un año como entrada, imprima todos los meses de ese año que contendrán un viernes 13 de acuerdo con el calendario gregoriano. Tenga en cuenta que aunque el calendario gregoriano no se introdujo hasta 1582, por simplicidad, pretendemos que ha estado en uso desde 0001 AD.
Reglas
Se permiten programas o funciones completos.
Puede tomar la entrada como argumentos de función, desde STDIN o como argumentos de línea de comando.
No está permitido usar ninguna fecha y hora incorporadas.
Puede asumir con seguridad que la entrada será un año válido. Si la entrada es menor que 1, no es un número entero válido, o mayor que el tipo de número nativo de su idioma, no tiene que manejar esto y obtiene un comportamiento indefinido.
La salida puede ser números, en inglés o en cualquier otro formato legible por humanos, siempre que especifique el estándar.
Asegúrese de tener en cuenta los años bisiestos. Y recuerde, ¡ los años bisiestos no ocurren cada 4 años!
Consejos
Dado que hay muchas maneras diferentes de hacerlo, no quiero decirte cómo hacerlo. Sin embargo, puede ser confuso dónde comenzar, por lo que aquí hay un par de formas confiables diferentes de determinar el día de la semana a partir de una fecha.
Elija una fecha de inicio con un día conocido de la semana, como el lunes 1 de enero de 0001 y descubra qué tan separados están los dos días, y tome ese número mod 7.
Muestra IO
2016 --> May
0001 --> 4, 7
1997 --> Jun
1337 --> 09, 12
123456789 --> January, October
Como de costumbre, este es el código de golf, por lo que se aplican las lagunas estándar y gana la respuesta más corta.
0001 --> 5
? De acuerdo con esta página (y mi código) debería ser abril y julio.