Votre défi est extrêmement simple. Étant donné une année en entrée, imprimez tous les mois de cette année qui contiendront un vendredi 13 selon le calendrier grégorien. Notez que même si le calendrier grégorien n'a été introduit qu'en 1582, pour simplifier, nous prétendons qu'il est utilisé depuis 0001 après JC.
Règles
Les programmes ou fonctions complets sont autorisés.
Vous pouvez prendre l'entrée comme arguments de fonction, depuis STDIN ou comme arguments de ligne de commande.
Vous n'êtes pas autorisé à utiliser les fonctions intégrées de date et d'heure.
Vous pouvez sans risque supposer que l'entrée sera une année valide. Si l'entrée est inférieure à 1, pas un entier valide ou supérieure au type de numéro natif de votre langue, vous n'avez pas à gérer cela et vous obtenez un comportement non défini.
La sortie peut être des nombres, en anglais ou dans tout autre format lisible par l'homme, tant que vous spécifiez la norme.
Assurez-vous de tenir compte des années bissextiles. Et rappelez-vous, les années bissextiles ne se produisent pas tous les 4 ans!
Conseils
Puisqu'il y a tellement de façons différentes de procéder, je ne veux pas vous dire comment procéder. Cependant, il peut être difficile de savoir par où commencer, alors voici quelques façons fiables de déterminer le jour de la semaine à partir d'une date.
Choisissez une date de début avec un jour connu de la semaine, comme le lundi 1er janvier 0001 et trouvez à quelle distance les deux jours sont éloignés, et prenez ce numéro mod 7.
Exemple d'E / S
2016 --> May
0001 --> 4, 7
1997 --> Jun
1337 --> 09, 12
123456789 --> January, October
Comme d'habitude, c'est le code-golf, donc les échappatoires standard s'appliquent et la réponse la plus courte l'emporte.
0001 --> 5
? Selon cette page (et mon code) ce devrait être avril et juillet.