Last Friday of each month: Difference between revisions

Changed algorithm to work with version 1.4 of Nim.
(→‎{{header|Wren}}: Oops, wrong import.)
(Changed algorithm to work with version 1.4 of Nim.)
Line 2,502:
 
=={{header|Nim}}==
<lang nim>import times, os, strutils, times
 
const
var timeinfo = getLocalTime getTime()
DaysInMonth: array[Month, int] = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
timeinfo.year = paramStr(1).parseInt
DayDiffs: array[WeekDay, int] = [3, 4, 5, 6, 0, 1, 2]
for month in mJan .. mDec:
 
timeinfo.month = month
timeinfo.let year = paramStr(1).parseInt
for day in countdown(31, 1):
 
timeinfo.monthday = day
for month in mJan .. mDec:
let t = getLocalTime(timeInfoToTime timeinfo)
var lastDay = DaysInMonth[month]
if t.month == month and t.weekday == dFri:
if month == mFeb and year.isLeapYear: lastDay = 29
echo t.format "yyyy-MM-dd"
var date = initDateTime(lastDay, month, year, 0, 0, 0)
break</lang>
date = date - days(DayDiffs[date.weekday])
Sample usage:
echo tdate.format ("yyyy-MM-dd")</lang>
<pre>./lastfriday 2012
 
{{out}}
Sample usage: ./lastfriday 2012
<pre>
2012-01-27
2012-02-24
Anonymous user