Un anno comune è un anno che non è un anno bisestile e in cui il primo e l'ultimo giorno dell'anno sono nello stesso giorno. Un anno comune speciale è quello che inizia un lunedì e finisce anche un lunedì.
La tua sfida è quella di creare un programma / funzione che quando viene dato un anno come input trova l'anno comune speciale più vicino, producendo se stesso se è un anno comune. Se l'anno è vicino a quello precedente come quello accanto ad esso produce quello più grande.
Ingresso
Un numero intero che rappresenta l'anno da testare nell'intervallo 1600 <= x <= 2100.
Produzione
Un numero intero che rappresenta l'anno comune speciale più vicino.
Casi test
2017 -> 2018
2018 -> 2018
1992 -> 1990
1600 -> 1601
2100 -> 2103
1728 -> 1731 (lies between 1725 and 1731)
Appunti
Tutti i 54 anni in un determinato intervallo sono già mostrati nell'articolo Wikipedia collegato. Li fornirò anche qui come riferimento:
1601, 1607, 1618, 1629, 1635, 1646, 1657, 1663, 1674, 1685, 1691
1703, 1714, 1725, 1731, 1742, 1753, 1759, 1770, 1781, 1787, 1798
1810, 1821, 1827, 1838, 1849, 1855, 1866, 1877, 1883, 1894, 1900
1906, 1917, 1923, 1934, 1945, 1951, 1962, 1973, 1979, 1990
2001, 2007, 2018, 2029, 2035, 2046, 2057, 2063, 2074, 2085, 2091
2103 (Needed for 2097 to 2100)
a year that is not a leap year and where the first and last day of the year are on the same dayLa seconda parte di tale definizione è ridondante. Tutti gli anni non bisestili iniziano e terminano lo stesso giorno, con una durata esatta di 52 settimane e un giorno (365 giorni).
6, 11, 11. IE 6 anni dopo il primo è un altro, 11 anni dopo quello è un altro, 11 anni dopo quello è un altro, 6 anni dopo quello è un altro, ecc.