モジュール:サンドボックス/和暦

モジュールの解説[表示] [編集] [履歴] [キャッシュを破棄]

明治5年12月2日以前(1872年12月31日以前)はグレゴリオ暦。

マークアップ 評価後
{{#invoke:サンドボックス/和暦|GGG_M_D|1868|1|6}} グレゴリオ暦1868年1月6日
{{#invoke:サンドボックス/和暦|GGG_M_D|1872|12|31}} グレゴリオ暦1872年12月31日
{{#invoke:サンドボックス/和暦|GGG_M_D|1873|1|1}} 明治6年1月1日
{{#invoke:サンドボックス/和暦|GGG_M_D|1870|1|6}} グレゴリオ暦1870年1月6日
{{#invoke:サンドボックス/和暦|GGG_M_D|1912|1|6}} 明治45年1月6日
{{#invoke:サンドボックス/和暦|GGG_M_D|1912|7|29}} 明治45年7月29日
{{#invoke:サンドボックス/和暦|GGG_M_D|1912|7|30}} 大正元年7月30日
{{#invoke:サンドボックス/和暦|GGG_M_D|1912|7|31}} 大正元年7月31日
{{#invoke:サンドボックス/和暦|GGG_M_D|1913|1|6}} 大正2年1月6日
{{#invoke:サンドボックス/和暦|GGG_M_D|1989|1|6}} 昭和64年1月6日
{{#invoke:サンドボックス/和暦|GGG_M_D|1989|7|6}} 平成元年7月6日
{{#invoke:サンドボックス/和暦|GGG_M_D|2018|1|6}} 平成30年1月6日
{{#invoke:サンドボックス/和暦|GGG_MM_DD|1868|1|6}} グレゴリオ暦1868年01月06日
{{#invoke:サンドボックス/和暦|GGG_MM_DD|1870|1|6}} グレゴリオ暦1870年01月06日
{{#invoke:サンドボックス/和暦|GGG_MM_DD|1912|1|6}} 明治45年01月06日
{{#invoke:サンドボックス/和暦|GGG_MM_DD|1912|7|29}} 明治45年07月29日
{{#invoke:サンドボックス/和暦|GGG_MM_DD|1912|7|30}} 大正元年07月30日
{{#invoke:サンドボックス/和暦|GGG_MM_DD|1912|7|31}} 大正元年07月31日
{{#invoke:サンドボックス/和暦|GGG_MM_DD|1913|1|6}} 大正2年01月06日
{{#invoke:サンドボックス/和暦|GGG_MM_DD|1989|1|6}} 昭和64年01月06日
{{#invoke:サンドボックス/和暦|GGG_MM_DD|1989|7|6}} 平成元年07月06日
{{#invoke:サンドボックス/和暦|GGG_MM_DD|2018|1|6}} 平成30年01月06日
{{#invoke:サンドボックス/和暦|GGG_SM_SD|1868|1|6}} グレゴリオ暦1868年 1月 6日
{{#invoke:サンドボックス/和暦|GGG_SM_SD|1870|1|6}} グレゴリオ暦1870年 1月 6日
{{#invoke:サンドボックス/和暦|GGG_SM_SD|1912|1|6}} 明治45年 1月 6日
{{#invoke:サンドボックス/和暦|GGG_SM_SD|1912|7|29}} 明治45年 7月29日
{{#invoke:サンドボックス/和暦|GGG_SM_SD|1912|7|30}} 大正元年 7月30日
{{#invoke:サンドボックス/和暦|GGG_SM_SD|1912|7|31}} 大正元年 7月31日
{{#invoke:サンドボックス/和暦|GGG_SM_SD|1913|1|6}} 大正2年 1月 6日
{{#invoke:サンドボックス/和暦|GGG_SM_SD|1989|1|6}} 昭和64年 1月 6日
{{#invoke:サンドボックス/和暦|GGG_SM_SD|1989|7|6}} 平成元年 7月 6日
{{#invoke:サンドボックス/和暦|GGG_SM_SD|2018|1|6}} 平成30年 1月 6日

local Calendar_Japanese = {}

function toarray(table)
  local values = {}
  for key,value in pairs(table) do
    key = tonumber(key)
    if (key) then
      values[key] = value
    end
  end
  return values
end

function Calendar_Japanese.GGG_M_D (frame)
  return GGG_M_D (unpack(toarray(frame.args)))
end

function Calendar_Japanese.GGG_MM_DD (frame)
  return GGG_MM_DD (unpack(toarray(frame.args)))
end

function Calendar_Japanese.GGG_SM_SD (frame)
  return GGG_SM_SD (unpack(toarray(frame.args)))
end

--[[--------------------------------------------------------------------------]]

function GGG_M_D (year, month, day)
  return string.format ("%s年%d月%d日", GGG_(year, month, day), month, day)
end

function GGG_MM_DD (year, month, day)
  return string.format ("%s年%02d月%02d日", GGG_(year, month, day), month, day)
end

function GGG_SM_SD (year, month, day)
  return string.format ("%s年%2d月%2d日", GGG_(year, month, day), month, day)
end

function GGG_ (year, month, day)
  local ymd = string.format ("%d%02d%02d", year, month, day)
  local g = (
    ("18730101"<=ymd and ymd<="19120729" and "明治") or
    ("19120730"<=ymd and ymd<="19261224" and "大正") or
    ("19261225"<=ymd and ymd<="19890107" and "昭和") or
    ("19890108"<=ymd and ymd<="20190430" and "平成") or
    "グレゴリオ暦")
  local gyear = (
    ("18730101"<=ymd and ymd<="19120729" and (year-1872+5)) or
    ("19120730"<=ymd and ymd<="19261224" and (year-1911)) or
    ("19261225"<=ymd and ymd<="19890107" and (year-1925)) or
    ("19890108"<=ymd and ymd<="20190430" and (year-1988)) or
  	year)
  gyear = (gyear==1 and "元") or  string.format ("%d", gyear)
  return string.format ("%s%s", g, gyear)
end

return Calendar_Japanese