Modul:Armeniska siffror

Från Järnvägsdata
Version från den 14 mars 2018 kl. 23.04 av Jan Karlsson (diskussion | bidrag) (1 version importerades)
(skillnad) ← Äldre version | Nuvarande version (skillnad) | Nyare version → (skillnad)

-- Denna modul implementerar . Den omvandlar tal till gamla armeniska siffror, fungerar för tal från 1 till 29999.

local p = {}

function p.konvertering( frame )

   local num
   if frame == mw.getCurrentFrame() then
       num = frame:getParent().args[ 1 ]
       local frameArgsNum = frame.args[ 1 ]
       if frameArgsNum then
           num = frameArgsNum
       end
   else
       num = frame
   end
   if type( num ) ~= 'number' then
       num = tonumber( num )
   end
   if not num then return end
   num = math.floor( num )
   if num < 1 or num > 29999 then return end
   
   local numerals = {
       { 20000, "Ֆ" }, { 10000, "Օ" },
       { 9000, "Ք" },  { 8000, "Փ" },  { 7000, "Ւ" },  { 6000, "Ց" },  { 5000, "Ր" },  { 4000, "Տ" },  { 3000, "Վ" },  { 2000, "Ս" },  { 1000, "Ռ" },
       { 900, "Ջ" },   { 800, "Պ" },   { 700, "Չ" },   { 600, "Ո" },   { 500, "Շ" },   { 400, "Ն" },   { 300, "Յ" },   { 200, "Մ" },   { 100, "Ճ" },
       { 90, "Ղ" },    { 80, "Ձ" },    { 70, "Հ" },    { 60, "Կ" },    { 50, "Ծ" },    { 40, "Խ" },    { 30, "Լ" },    { 20, "Ի" },    { 10, "Ժ" },
       { 9, "Թ" },     { 8, "Ը" },     { 7, "Է" },     { 6, "Զ" },     { 5, "Ե" },     { 4, "Դ" },     { 3, "Գ" },     { 2, "Բ" },     { 1, "Ա" }
   }
   
   local ret = {}
   for _, v in ipairs( numerals ) do
       local val, letter = unpack( v )
       while num >= val do
           num = num - val
           table.insert( ret, letter )
       end
   end
   return table.concat( ret )

end

return p