モジュール:サンドボックス/しまあじ/年月翻訳

local p = {}
local q = {}
local t = {}
local usub = mw.ustring.sub
function p.checkdate(frame)
local timestamp = mw.text.trim(frame.args1 or "")
local default = mw.text.trim(frame.args"default" or "")
return q.checkdate(timestamp, default)
end
function q.checkdate(timestamp, default)
if mw.ustring.match(timestamp, "#") then
return default
end
local r = mw.ustring.lower(mw.ustring.gsub(timestamp, "0-9", "#"))
local f = tr
if f then
return f(timestamp, default)
else
if mw.ustring.match(r, "^####年#月") then
return usub(timestamp, 1, 7)
end
if mw.ustring.match(r, "^####年%-##月") then
return t"####年##月"(timestamp, default)
end
if mw.ustring.match(r, "^####%-#月") then
return t"####-#月"(timestamp, default)
end
end
return default
end
t"####年#月" = function (timestamp, default)
return timestamp
end
t"####年##月" = function (timestamp, default)
local n = tonumber(usub(timestamp, 6, 7))
if 1 <= n and n <= 12 then
return usub(timestamp, 1, 4) .. "年" .. tostring(n) .. "月"
end
return default
end
t"####年#月以前" = t"####年#月"
t"####年##月以前" = function (timestamp, default)
local n = tonumber(usub(timestamp, 6, 7))
if 1 <= n and n <= 12 then
return usub(timestamp, 1, 4) .. "年" .. tostring(n) .. "月以前"
end
return default
end
t"####年#月以後" = t"####年#月"
t"####年##月以後" = function (timestamp, default)
local n = tonumber(usub(timestamp, 6, 7))
if 1 <= n and n <= 12 then
return usub(timestamp, 1, 4) .. "年" .. tostring(n) .. "月以後"
end
return default
end
t"####-#月" = function (timestamp, default)
return usub(timestamp, 1, 4) .. "年" .. usub(timestamp, 6, 6) .. "月"
end
t"####-##月" = t"####年##月"
t"####-#月以前" = function (timestamp, default)
return usub(timestamp, 1, 4) .. "年" .. usub(timestamp, 6)
end
t"####-##月以前" = t"####年##月以前"
t"####-#月以後" = t"####-#月以前"
t"####-##月以後" = t"####年##月以後"
t"####-#-#" = t"####-#月"
t"####-#-##" = t"####-#月"
t"####-##-#" = t"####年##月"
t"####-##-##" = t"####年##月"
t"####-#" = function (timestamp, default)
return usub(timestamp, 1, 4) .. "年" .. usub(timestamp, -1) .. "月"
end
t"####-##" = function (timestamp, default)
local n = tonumber(usub(timestamp, -2))
if 1 <= n and n <= 12 then
return usub(timestamp, 1, 4) .. "年" .. tostring(n) .. "月"
end
return default
end
t"#####" = t"####-#"
t"######" = t"####-##"
t"january ####" = function (timestamp, default)
return usub(timestamp, -4) .. "年1月"
end
t"february ####" = function (timestamp, default)
return usub(timestamp, -4) .. "年2月"
end
t"march ####" = function (timestamp, default)
return usub(timestamp, -4) .. "年3月"
end
t"april ####" = function (timestamp, default)
return usub(timestamp, -4) .. "年4月"
end
t"may ####" = function (timestamp, default)
return usub(timestamp, -4) .. "年5月"
end
t"june ####" = function (timestamp, default)
return usub(timestamp, -4) .. "年6月"
end
t"july ####" = function (timestamp, default)
return usub(timestamp, -4) .. "年7月"
end
t"august ####" = function (timestamp, default)
return usub(timestamp, -4) .. "年8月"
end
t"september ####" = function (timestamp, default)
return usub(timestamp, -4) .. "年9月"
end
t"october ####" = function (timestamp, default)
return usub(timestamp, -4) .. "年10月"
end
t"november ####" = function (timestamp, default)
return usub(timestamp, -4) .. "年11月"
end
t"december ####" = function (timestamp, default)
return usub(timestamp, -4) .. "年12月"
end
t"january, ####" = t"january ####"
t"february, ####" = t"february ####"
t"march, ####" = t"march ####"
t"april, ####" = t"april ####"
t"may, ####" = t"may ####"
t"june, ####" = t"june ####"
t"july, ####" = t"july ####"
t"august, ####" = t"august ####"
t"september, ####" = t"august ####"
t"october, ####" = t"october ####"
t"november, ####" = t"november ####"
t"december, ####" = t"december ####"
return p