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


Public Sub Form_Open()
Dim sYear As String                                                             'To store the year chosen
Dim siDay, siMonth, siWeekday As Short                                          'Day, Month and Weekday
 
sYear = InputBox("Input year", "Last Sunday of each month")                     'Get the user to enter a year
Print "Last Sundays in " & sYear                                                'Print a heading
 
For siMonth = 1 To 12                                                           'Loop for each month
  For siDay = 31 DownTo 23                                                      'Count backwards from 31 to 23 (Sunday 23rd February 1930) 
    siWeekday = 7                                                               'Set the Weekday to Saturday in case of error in the next line
    Try siWeekday = WeekDay(Date(Val(sYear), siMonth, siDay))                   'TRY and get the Weekday. If there is an error it will be ignored e.g. 31 February
    If siWeekday = 0 Then                                                       'If Weekday is Sunday then..
      Print Format(Date(Val(sYear), siMonth, siDay), "dddd dd mmmm yyyy")       'Print the date
      Break                                                                     'Jump out of this loop
    End If
  Next
Next
 
End