Last Friday of each month: Difference between revisions

(→‎{{header|Pike}}: forgot the commandline argument)
Line 18:
2012-12-28</pre>
 
 
=={{header|Icon}} and {{header|Unicon}}==
This will write the last fridays for every year given as an argument. There is no error checking on the year.
 
<lang Icon>procedure main(A)
every write(lastfridays(!A))
end
 
procedure lastfridays(year)
every m := 1 to 12 do {
d := case m of {
2 : if IsLeapYear(year) then 29 else 28
4|6|9|11 : 30
default : 31
} # last day of month
z := 0
j := julian(m,d,year) + 1 # first day of next month
until (j-:=1)%7 = 4 do z -:=1 # backup to last friday=4
suspend sprintf("%d-%d-%d",year,m,d+z)
}
end
 
link datetime, printf</lang>
 
{{libheader|Icon Programming Library}}
[http://www.cs.arizona.edu/icon/library/src/procs/printf.icn printf.icn provides formatting]
[http://www.cs.arizona.edu/icon/library/src/procs/datetime.icn datetime.icn provides julian and IsLeapYear]
 
Output:<pre>last_fridays.exe 2012
2012-1-27
2012-2-24
2012-3-30
2012-4-27
2012-5-25
2012-6-29
2012-7-27
2012-8-31
2012-9-28
2012-10-26
2012-11-30
2012-12-28</pre>
 
=={{header|OCaml}}==
Anonymous user