Last Friday of each month: Difference between revisions

Undo revision 231020 by Vince refiti (talk)
No edit summary
(Undo revision 231020 by Vince refiti (talk))
Line 2,831:
</pre>
 
=={{header|SmalltalkSQL}}==
<lang SmalltalkSQL>
select to_char( next_day( last_day( add_months( to_date(
Pharo Smalltalk
:yr||'01','yyyymm' ),level-1))-7,'Fri') ,'yyyy-mm-dd Dy') lastfriday
 
from dual
[ :yr | | firstDay firstFriday |
connect by level <= 12;
firstDay := Date year: yr month: 1 day: 1.
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
-----------------------
2012-01-27 Fri
Send value: 2012 to the above block to return an array:
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
 
12 rows selected.
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)
</pre>