Last Friday of each month: Difference between revisions

Adds Clojure solution
m (→‎{{header|Go}}: Replace constant to make it clear how Friday is being chosen)
(Adds Clojure solution)
Line 306:
2012-Dec-28
</pre>
=={{header|Clojure}}==
{{libheader|clj-time}}
 
<lang clojure>(use '[clj-time.core :only [last-day-of-the-month day-of-week minus days]]
'[clj-time.format :only [unparse formatters]])
 
(defn last-fridays [year]
(let [last-days (map #(last-day-of-the-month year %) (range 1 13 1))
dow (map day-of-week last-days)
relation (zipmap last-days dow)]
(map #(minus (key %) (days (mod (+ (val %) 2) 7))) relation)))
 
(defn last-fridays-formatted [year]
(sort (map #(unparse (formatters :year-month-day) %) (last-fridays year))))</lang>
 
{{out}}
<pre>user=> (pprint (last-fridays-formatted 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")</pre>
 
=={{header|CoffeeScript}}==
<lang coffeescript>
Anonymous user