Ir al contenido

Módulo:Zona de pruebas/Miguillen/fecha2

De Wikipedia, la enciclopedia libre
Icono de documentación de módulo Documentación del módulo[ver] [editar] [historial] [purgar]

A continuación se muestra la documentación transcluida desde la subpágina /doc. [salta a la caja de código]


Uso

  • {{#invoke:Zona de pruebas/Miguillen/fecha2|principal|24 de diciembre de 2014}} → 20141224
  • {{#invoke:Zona de pruebas/Miguillen/fecha2|principal|24 de diciembre del 2014}} → 20141224
  • {{#invoke:Zona de pruebas/Miguillen/fecha2|principal|4 de Enero de 1913}} → 19130104
  • {{#invoke:Zona de pruebas/Miguillen/fecha2|principal|2 de MARZO de 14}} → 00140302
  • {{#invoke:Zona de pruebas/Miguillen/fecha2|principal|2 de septiembre de 1976}} → 19760902
  • {{#invoke:Zona de pruebas/Miguillen/fecha2|principal|2 de setiembre de 1976}} → 19760902
  • {{#invoke:Zona de pruebas/Miguillen/fecha2|principal|Cualquier cosa}}Cadena de fecha no válida
  • {{#invoke:Zona de pruebas/Miguillen/fecha2|principal|dd}}Cadena de fecha no válida
  • {{#invoke:Zona de pruebas/Miguillen/fecha2|principal|2 de turrón de 1880}}Cadena de fecha no válida



Esta documentación está transcluida desde Módulo:Zona de pruebas/Miguillen/fecha2/doc.
Por favor, añade las categorías en la subpágina de documentación y los interwikis en Wikidata. Subpáginas de este módulo.

local p = {}
function getNumeroMes(nombreMes)
    local numeroMes = ''
    local nombreMeses = { 
    	['01'] = 'enero', ['02'] = 'febrero', ['03'] = 'marzo', ['04'] = 'abril', ['05'] = 'mayo', ['06'] = 'junio', ['07'] =  'julio', ['08'] =  'agosto',
    	['09'] =  'septiembre', ['9'] =  'setiembre', ['10'] = 'octubre',  ['11'] =  'noviembre', ['12'] =  'diciembre'
    	}
    for k, n in pairs(nombreMeses) do
        if nombreMeses[k] == mw.ustring.lower(nombreMes) then
            numeroMes = k
        end
    end
    if numeroMes == nil or numeroMes == '' then
        numeroMes = '00' 
    end
    return numeroMes
end

function setString(cadena)
    local dia, mes, anno
    local error = '<strong class="error">Cadena de fecha no válida</strong>'
    local valorDia = mw.ustring.gsub(cadena,'(%d+) de %a+ del? %d+','%1')
    if valorDia == nil or valorDia == '' or mw.ustring.len(valorDia) > 2 or type(tonumber(valorDia)) ~= 'number' then 
        return error 
    else
        dia = mw.ustring.format('%02d', tonumber(valorDia))
    end
    local valorMes = getNumeroMes(mw.ustring.gsub(cadena,'%d+ de (%a+) del? %d+','%1'))
    if valorMes == '00' then
        return error 
    else
        mes = mw.ustring.format('%02d',tonumber(valorMes))
    end
    local valorAnno = mw.ustring.gsub(cadena,'%d+ de %a+ del? (%d+)','%1')
    if valorAnno == nil or valorAnno == '' or type(tonumber(valorAnno)) ~= 'number' then
        return error
    else
       anno = mw.ustring.format('%04d',tonumber(valorAnno))
    end
    local newCadena = anno..mes..dia
    return newCadena
end

function p.principal(frame)
    return setString(frame.args[1])
end

return p