Task

Write a program or a script that returns the date of the last Fridays 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_fridays 2012
2012-01-27
2012-02-24
2012-03-30
2012-04-27
2012-05-25
2012-06-29
2012-07-27
2012-08-31
2012-09-28
2012-10-26
2012-11-30
2012-12-28



Related tasks
 Five weekends
 Day of the week
 Find the last Sunday of each month


lastFridayForMonth: function [m][
    ensure -> in? m 1..12
 
    daysOfMonth: [0 31 27 31 30 31 30 31 31 30 31 30 31]
    loop range get daysOfMonth m 1 [d][
        dt: to :date.format:"yyyy-M-dd" ~"2012-|m|-|d|"
        if dt\Day = "Friday" -> return dt
    ]
]
 
loop 1..12 'month [
    print to :string.format:"yyyy-MM-dd" lastFridayForMonth month
]