4,212
edits
(Copied over from myndmess:Module:DayCalc) |
(Fixing up the get_next_tuesday logic and made it use an offset so that the date calculation uses Pacific Standard Time) |
||
(3 intermediate revisions by the same user not shown) | |||
Line 5:
function p.get_next_tuesday(frame)
local isodate = frame.args.isodate
local
local current_time = os.time() + pst_tzoffset
local current_day_of_week = tonumber(os.date("%w", current_time))
local days_until_tuesday = (9 - current_day_of_week) % 7
local next_tuesday_time = current_time + days_until_tuesday *
local retval="UNDEFINED"
▲ local next_tuesday_time = current_time + days_until_tuesday * 86400 -- 86400 seconds in a day
if isodate == "true" and current_day_of_week == 2 then
elseif current_day_of_week == 2 then
retval
else▼
elseif isodate == true then
end▼
else
▲ return os.date("%Y-%m-%d", next_tuesday_time)
end
return retval
end
function p.get_first_coming_tuesday_of_month(frame)
local isodate = frame.args.isodate
local
local
local
local first_day_of_month = os.time({ year = current_year, month = current_month, day = 1, hour = 0, min = 0, sec = 0 })▼
local first_tuesday_day
▲ local first_day_day_of_week = tonumber(os.date("%w", first_day_of_month))
current_month = current_month + 1
if current_month > 12 then
▲ if next_month > 12 then
▲ next_month = 1
end
elseif current_datenum <= 7 and day_of_week == 2 then
if isodate == "true" then
return os.date("%Y-%m-%d"
else
return os.date("%B %e, %Y"
end
for day = 1, 7 do
▲ local
local day_of_week = tonumber(os.date("%w", day_time))
if day_of_week == 2 then -- Tuesday
first_tuesday_day = day
▲ end
if first_tuesday_day then
local first_tuesday_time = os.time({ year = current_year, month = current_month, day = first_tuesday_day, hour = 0, min = 0, sec = 0 })
if isodate == "true" then
return os.date("%Y-%m-%d", first_tuesday_time)
Line 56 ⟶ 65:
return os.date("%B %e, %Y", first_tuesday_time)
end
▲ else
return "Unable to calculate first Tuesday of the month."
end
end
|