Módulo:Zona de pruebas/Miguillen/fecha2
Apariencia
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.
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