Module:SetDateRange
From Seven Sages of Rome
Documentation for this module may be created at Module:SetDateRange/doc
local p = {};
local function isStringSet(s)
return s ~= nil and s ~= ''
end
local function tableLength(T)
local count = 0
for _ in pairs(T) do count = count + 1 end
return count
end
local function splitString (inputstr, sep)
if sep == nil then
sep = "%s"
end
local t={}
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
table.insert(t, str)
end
return t
end
local function formatDate(d)
local dateParts = splitString(d, "-")
local datePartsNumber = tablelength(dateParts)
if datePartsNumber == 1 then
return d
elseif datePartsNumber == 2 then
local time = os.time{year=1970, month=1, day=1}
return os.date("%B %Y", time)
elseif datePartsNumber == 3 then
local time = os.time{year=1970, month=1, day=1}
return os.date("%d %B %Y", time)
end
local convertedTimestamp = os.time({year = runyear, month = runmonth, day = runday, hour = runhour, min = runminute, sec = runseconds})
return convertedTimestamp
end
p.set = function( f )
if not mw.smw then
return "mw.smw module not found"
end
local args = f.args
local start_date = args.start_date
local end_date = args.end_date
local date_range = ""
local date_range_property = args.date_range_property
local sort_date_property = args.sort_date_property
if isStringSet(start_date) and isStringSet(end_date) then
date_range = start_date .. "-" .. end_date
elseif isStringSet(start_date) then
date_range = start_date
elseif isStringSet(end_date) then
date_range = end_date
end
local property = {}
property[date_range_property] = date_range
property[sort_date_property] = start_date
local result = mw.smw.set( property )
if result == false then
print("Error: Couldn't set date range")
end
return date_range
end
p.test = function( f )
return "test"
end
return p