Module:Calendar date/recurring: Difference between revisions

Content deleted Content added
No edit summary
last [day of week]
Line 21:
local month = tonumber(args.month)
local date = os.time{year=year, month=month, day=1}
local weeknumberdayofweek = tonumber(args.weeknumberdayofweek)
local dateparts = os.date("*t", date)
if weeknumberdayofweek > 10 then
-- find the first [dayofweek] of this month
while dateparts["wday"] ~= dayofweek do
date = date + ONE_DAY
dateparts = os.date("*t", date)
end
 
-- findadd the firstcorrect [dayofweek]number of this monthweeks
local dayofweekweeknumber = tonumber(args.dayofweekweeknumber)
if weeknumber > 1 then
while dateparts["wday"] ~= dayofweek do
date = date + ((weeknumber - 1) * (7 * ONE_DAY))
end
else
-- find the first day of the next month
while dateparts["month"] == month do
date = date + ONE_DAY
dateparts = os.date("*t", date)
end
 
-- go back one day to get the last day of the month we want
date = date - ONE_DAY
dateparts = os.date("*t", date)
end
 
-- addgo backwards until we find the correctright numberday of weeksweek
while dateparts["wday"] ~= dayofweek do
local weeknumber = tonumber(args.weeknumber)
date = date - ONE_DAY
if weeknumber > 1 then
date dateparts = os.date + ((weeknumber - 1) "*t", (7 * ONE_DAY)date)
end
end
 
local result = os.date("%Y-%m-%d", date)
return result