Write a program or a script that returns the last Sundays of each month of a given year. The year may be given through any simple input method in your language (command line, std in, etc).

Example of an expected output:

./last_sundays 2013
2013-01-27
2013-02-24
2013-03-31
2013-04-28
2013-05-26
2013-06-30
2013-07-28
2013-08-25
2013-09-29
2013-10-27
2013-11-24
2013-12-29


Related tasks
 Day of the week
 Five weekends
 Last Friday of each month


object FindTheLastSundayOfEachMonth extends App {
  import java.util.Calendar._
  val cal = getInstance
 
  def lastSundaysOf(year: Int) =
    (JANUARY to DECEMBER).map{month =>
      cal.set(year, month + 1, 1) // first day of next month
      (1 to 7).find{_ => cal.add(DAY_OF_MONTH, -1); cal.get(DAY_OF_WEEK) == SUNDAY}
      cal.getTime
    }
 
  val year = args.headOption.map(_.toInt).getOrElse(cal.get(YEAR))
  val fmt = new java.text.SimpleDateFormat("yyyy-MM-dd")
  println(lastSundaysOf(year).map(fmt.format) mkString "\n")
}