Module:වසර පරික්ෂාව
ඉහත දැක්වෙන උපදෙස්, Module:වසර පරික්ෂාව/උපදෙස් වෙතින් ගෙනැවිත් ඇත. (සංස්කරණය | ඉතිහාසය) සංස්කාරකවරුන් හට, මෙම සැකිල්ලේ මොඩියුලයේ sandbox (නිර්මාණය | mirror) සහ testcases (නිර්මාණය) පිටු වල අත්හදා බැලීම් කළ හැකිය. ප්රවර්ග, /උපදෙස් උප පිටුව වෙත එක් කිරීමට කාරුණික වන්න. මෙම මොඩියුලය සතු උප පිටු. |
local getArgs = require('Module:Arguments').getArgs
local p = {}
local function parikshaawa(args)
local input = args["ආදානය"]
local func = args["ශ්රිතය"]
if input == nil then
input = ""
end
if func == nil then
func = "0"
end
if func == "4" then
m = input:match("^ක්රිස්තු පූර්ව (%d+)$")
if m ~= nil then
return -1
else
m = input:match("^(%d+)$")
if m ~= nil then
if m == "0" then
-- 0 (බිංදුව) වසර සඳහා පිළිතුර 0 (බිංදුව) වෙයි
return m
end
return 1
else
m = input:match("^(%d+) BCE$")
if m ~= nil then
return -1
end
end
end
-- ඉහත පරීක්ෂාවට හසු නොවේ නම් පිළිතුර 0 (බිංදුව) වෙයි.
return 0
elseif func == "3" then
-- m = input:match("^[(ක්රිස්තු)]*[ ]*[(වර්ෂ|පූර්ව)]* (%d+) වන දශකය$")
m = input:match("^ක්රිස්තු පූර්ව (%d+)$")
if m ~= nil then
return 1
else
m = input:match("^(%d+)$")
if m ~= nil then
return 1
else
m = input:match("^(%d+) BCE$")
if m ~= nil then
return 1
end
end
end
-- ඉහත පරීක්ෂාවට හසු නොවේ නම් පිළිතුර 0 (බිංදුව) වෙයි.
return 0
elseif func == "2" then
m = input:match("^ක්රිස්තු පූර්ව (%d+)$")
if m ~= nil then
return "ක්රිස්තු පූර්ව " .. ((math.ceil(m / 100))) .. " වන සියවස"
else
m = input:match("^(%d+)$")
if m ~= nil then
return ((math.ceil(m / 100))) .. " වන සියවස"
else
m = input:match("^(%d+) BCE$")
if m ~= nil then
return "ක්රිස්තු පූර්ව " .. ((math.ceil(m / 100))) .. " වන සියවස"
end
end
end
return "FALSE"
elseif func == "1" then
m = input:match("^ක්රිස්තු පූර්ව (%d+)$")
if m ~= nil then
return "ක්රිස්තු පූර්ව " .. (((math.floor(m / 10))) * 10) .. " දශකය"
else
m = input:match("^(%d+)$")
if m ~= nil then
return ((math.floor(m / 10)) * 10) .. " දශකය"
else
m = input:match("^(%d+)[ ]*[B]*[C]*[E]*$")
if m ~= nil then
if input:match("^.*BCE.*$") then
return "ක්රිස්තු පූර්ව " .. (((math.floor(m / 10))) * 10) .. " දශකය"
else
return ((math.floor(m / 10)) * 10) .. " දශකය"
end
end
end
end
return "FALSE"
-- return "දෝෂය: තවම සාදා අවසන් කොට නොමැත."
elseif func == "0" then
m = input:match("^ක්රිස්තු පූර්ව (%d+)$")
if m ~= nil then
-- return "ක්රිස්තු පූර්ව " .. m
return m
else
m = input:match("^(%d+)$")
if m ~= nil then
return m
else
m = input:match("^(%d+)[ ]*[B]*[C]*[E]*$")
if m ~= nil then
if input:match("^.*BCE.*$") then
-- return "ක්රිස්තු පූර්ව " .. m
return m
else
return m
end
end
end
end
return "FALSE"
-- return "දෝෂය: තවම සාදා අවසන් කොට නොමැත."
else
return func
-- return "දෝෂය: ශ්රිතය සඳහා ලබා දී ඇති පැරාමිතිය හඳුනාගත නොහැකිය."
end
return retVal
end
function p.main(frame)
local args = getArgs(frame)
return p._main(args)
end
function p._main(args)
return parikshaawa(args)
end
return p