Most years have 52 weeks, some have 53, according to ISO8601.



Task

Write a function which determines if a given year is long (53 weeks) or not, and demonstrate it.




import times
 
proc has53weeks(year: Positive): bool =
  let dt = initDateTime(monthday = 1, month = mJan, year = year, hour = 0, minute = 0, second= 0)
  result = dt.weekday == dThu or year.isLeapYear and dt.weekday == dWed
 
when isMainModule:
  echo "Years with 53 weeks between 2000 and 2100:"
  for year in 2000..2100:
    if year.has53weeks:
      echo year