Last Friday of each month: Difference between revisions

no edit summary
No edit summary
Line 2,831:
</pre>
 
=={{header|SQLSmalltalk}}==
<lang SQLSmalltalk>
Pharo Smalltalk
select to_char( next_day( last_day( add_months( to_date(
 
:yr||'01','yyyymm' ),level-1))-7,'Fri') ,'yyyy-mm-dd Dy') lastfriday
[ :yr | | firstDay firstFriday |
from dual
firstDay := Date year: yr month: 1 day: 1.
connect by level <= 12;
firstFriday := firstDay addDays: (6 - firstDay dayOfWeek).
(0 to: 52)
collect: [ :each | firstFriday addDays: (each * 7) ]
thenSelect: [ :each |
(((Date daysInMonth: each monthIndex forYear: yr) - each dayOfMonth) <= 6) and: [ each year = yr ] ] ].
</lang>
<pre>
LASTFRIDAY
-----------------------
Send value: 2012 to the above block to return an array:
2012-01-27 Fri
2012-02-24 Fri
2012-03-30 Fri
2012-04-27 Fri
2012-05-25 Fri
2012-06-29 Fri
2012-07-27 Fri
2012-08-31 Fri
2012-09-28 Fri
2012-10-26 Fri
2012-11-30 Fri
2012-12-28 Fri
 
an Array(27 January 2012 24 February 2012 30 March 2012 27 April 2012 25 May 2012 29 June 2012 27 July 2012 24 August 2012 31 August 2012 28 September 2012 26 October 2012 23 November 2012 30 November 2012 28 December 2012)
12 rows selected.
</pre>