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


import Foundation
 
func lastSundays(of year: Int) -> [Date] {
 
	let calendar = Calendar.current
	var dates = [Date]()
 
	for month in 1...12 {
 
		var dateComponents = DateComponents(calendar: calendar,
		                                    year: year,
		                                    month: month + 1,
		                                    day: 0,
		                                    hour: 12)
 
		let date = calendar.date(from: dateComponents)!
		let weekday = calendar.component(.weekday, from: date)
 
		if weekday != 1 {
			dateComponents.day! -= weekday - 1
		}
 
		dates.append(calendar.date(from: dateComponents)!)
	}
	return dates
}
 
var dateFormatter = DateFormatter()
dateFormatter.dateStyle = .short
 
print(lastSundays(of: 2013).map(dateFormatter.string).joined(separator: "\n"))