La tua sfida è estremamente semplice. Dato un anno come input, stampa tutti i mesi di quell'anno che conterranno un venerdì 13 secondo il calendario gregoriano. Si noti che anche se il calendario gregoriano non fu introdotto fino al 1582, per semplicità fingeremo che sia in uso dal 0001 d.C.
Regole
Sono ammessi programmi o funzioni completi.
È possibile accettare input come argomenti di funzione, da STDIN o come argomenti della riga di comando.
Non è consentito utilizzare alcun data e ora incorporati.
Puoi tranquillamente presumere che l'input sarà un anno valido. Se l'input è inferiore a 1, non un numero intero valido o maggiore del tipo di numero nativo delle lingue, non è necessario gestirlo e si ottiene un comportamento indefinito.
L'output può essere un numero, in inglese o in qualsiasi altro formato leggibile dall'uomo, purché si specifichi lo standard.
Assicurati di tenere conto degli anni bisestili. E ricorda, gli anni bisestili non accadono ogni 4 anni!
Suggerimenti
Dal momento che ci sono molti modi diversi per farlo, non voglio dirti come farlo. Tuttavia, potrebbe essere fonte di confusione da dove iniziare, quindi ecco un paio di modi diversi affidabili per determinare il giorno della settimana da una data.
Scegli una data di inizio con un giorno della settimana noto, ad esempio lunedì 1 ° gennaio 0001, scopri quanto sono distanti i due giorni e prendi quel numero mod 7.
IO di esempio
2016 --> May
0001 --> 4, 7
1997 --> Jun
1337 --> 09, 12
123456789 --> January, October
Come al solito, si tratta di code-golf, quindi si applicano scappatoie standard e vince la risposta più breve.
0001 --> 5
:? Secondo questa pagina (e il mio codice) dovrebbe essere aprile e luglio.