Module:FarsiDate

(له Module:FarsiDat نه مخ گرځېدلی)

کينډۍ:ماډيول ارزونه

دا ماډل د واحد ازموینې ماډل لري. مهرباني وکړئ ډاډ ترلاسه کړئ چې ازموینې د ماډيول خبرې اترې:FarsiDate/testcases په هر بدلون کې بریالي دي..

کارول

سمول

{{#invoke:FarsiDate|main|year|month|day[|solar]}}



local getArgs = require('Module:Arguments').getArgs
local numConv = require('Module:Numeral converter').convert
local p = {}

local _solarMonths = {'وری ', 'غويی ', 'غبرګولی ', 'چنګاښ ', 'زمری ', 'وږی ', 'تله ', 'لړم ', 'ليندۍ ', 'مرغومی ', 'سلواغه ', 'کب '}
local _gregorianMonths = {'جنوري ', 'فېبروري ', 'مارچ ', 'اپرېل ', 'می', 'جون ', 'جولای ', 'اګست ', 'سېپتمبر ', 'اکتوبر ', 'نومبر ', 'ډېسمبر '}
local _solar = {["solar"] = true, ["لمريز"] = true}

function p.main(frame)
	local args = getArgs(frame, {frameOnly=true})
	return p.dateString(args[1], args[2], args[3], args[4])
end

function p.dateString(year, month, day, calendar)
	-- Main module code goes here.
	if _solar[calendar] then
		months = _solarMonths
	else
		months = _gregorianMonths
	end
  local function toString()
    if not month then
      return numConv('ps', year)
    elseif not day then
      return months[tonumber(numConv('en', month))] .. numConv('ps', year)
    else
      return string.gsub(numConv('ps', day), '^۰', '') .. ' ' .. months[tonumber(numConv('en', month))] .. numConv('ps', year)
    end
  end
  local success, result = pcall(toString)
  if success then
    return result
  else
    return '<span class="error">ليکل شوې نېټه ناسمه ده</span>'
  end
end

return p