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


leap-year?:  function [year] [to-logic attempt [to-date reduce [29 2 year]]]
 
days-in-feb: function [year] [either leap-year? year [29] [28]]
 
days-in-month: function [month year] [
    do pick [31 (days-in-feb year) 31 30 31 30 31 31 30 31 30 31] month
]
 
last-day-of-month: function [month year] [
    to-date reduce [year month  days-in-month month year]
]
 
last-weekday-of-month: function [weekday month year] [
    d: last-day-of-month month year
    while [d/weekday != weekday] [d/day: d/day - 1]
    d
]
 
last-friday-of-month: function [month year] [last-weekday-of-month 5 month year]
 
year: to-integer input
repeat month 12 [print last-friday-of-month month year]
 