Bahaipedia
Bahaipediaدانشنامه بهائی
Menú
Cambios recientes
Haga su pregunta
Página al azar
Categorías
Ayuda en Wikipedia
En otros proyectos
Herramientas
Lo que enlaza aquí
Cambios relacionados
Subir archivo
Páginas especiales
Versión para imprimir
Enlace permanente
Información de la página
Módulo
Discusión
Ver historial
No has accedido
Discusión
Contribuciones
Crear una cuenta
Acceder
Navigation
Navigation
Navegación
Navigation
ナビゲーション
Điều hướng
导航
Navegação
ناوبری
Навигация
Cambios recientes
Haga su pregunta
Página al azar
Categorías
Ayuda en Wikipedia
En otros proyectos
Learn more
Weitere Informationen
Aprender más
En savoir plus
詳しく読む
Tìm hiểu thêm
了解更多
Saiba mais
یاد بگیرید بیشتر
Узнать больше
Fe bahá’í
Bahá’u’lláh
‘Abdu’l-Bahá
Principios bahá’ís
Tools
Werkzeuge
Herramientas
Outils
ツール
Công cụ
工具
Ferramentas
ابزارها
Инструменты
Lo que enlaza aquí
Cambios relacionados
Subir archivo
Páginas especiales
Versión para imprimir
Enlace permanente
Información de la página
Translations
Übersetzungen
Traducciones
Traductions
各言語版
Bản dịch
翻译
Traduções
به زبان‌های دیگر
Переводы

Módulo:Fechas

De Bahaipedia
Saltar a:navegación, buscar

La documentación para este módulo puede ser creada en Módulo:Fechas/doc

local z = {}

local meses = {
       'enero','febrero','marzo','abril','mayo','junio','julio','agosto','septiembre','octubre','noviembre','diciembre'}

function z.NombreDelMes(mes)
  -- Función que devuelve el nombre del mes, donde mes es un número entre 1 y 12. 
  -- Si no es así se devuelve el valor de mes.
  -- Por ejemplo, 2  --> febrero
  --              02 --> febrero
  --              abril --> abril
  --              MAYO --> MAYO
   return meses[tonumber(mes)] or mes
end

function z.Fecha(frame)
    -- Función que formatea una fecha
    -- El único parámetro obligatorio es el año o 3.
    -- Obtener los argumentos con los que se llama a la función

    local argumentos = {}
    local parent = {}
    if frame == mw.getCurrentFrame() then
        if   frame.args[3]  or frame.args["año"]  then
    	    argumentos = frame.args
        else 
    	    parent = frame:getParent()
            argumentos = parent.args
        end 
    else
        argumentos = frame
    end
    
    local enlace = argumentos["enlace"] ~= "no"

    -- Obtener el día, el nombre del mes y el año incluyendo para los años negativos a.d.
    local dia = argumentos["día"] or argumentos[1] or ''    
    if dia ~='' then 
    	dia=tonumber(dia) or dia -- Eliminar ceros a la izquierda del día.
    end
    local mes = argumentos["mes"] or argumentos[2] or ''
    if mes~='' then 
    	mes =meses[tonumber(mes)] or mes 
    end
    local anyo=tonumber(argumentos["año"] or argumentos[3]) or 0
    if anyo < 0 then
    	anyo = -anyo .. ' a. C.'
    end
    
    local calendario = ''
    
    if argumentos["calendario"] == 'juliano' then
    	calendario = '<sup>[[Calendario juliano|jul.]]</sup>'
    end

    -- Formatear la fecha dependiendo de si el día, el mes o el año están informados
    if dia ~='' then
    	if enlace then
    	  return '[[' .. dia .. ' de ' .. mes .. ']] de [[' .. anyo .. ']]' .. calendario
    	else
    	  return dia .. ' de ' .. mes .. ' de ' .. anyo .. calendario
    	end
    elseif mes~='' then
        if argumentos["mayúscula"] == 'sí' then
            mes = mw.language.new('es'):ucfirst(mes)
        end
        if enlace then
	    return  '[[' .. mes .. ']] de [[' .. anyo .. ']]'
	else
	    return  mes .. ' de ' .. anyo
	end
    elseif anyo ~= 0 then
        if enlace then
    	    return '[[' .. anyo .. ']]'
    	else
    	    return tostring(anyo)
    	end
     end
 end
 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 z.Numerica(frame)
     return setString(frame.args[1])
 end

 
return z
Obtenido de «https://es.bahaipedia.org/index.php?title=Módulo:Fechas&oldid=118»
Esta página se editó por última vez el 12 feb 2023 a las 09:45.
El contenido está disponible bajo la licencia Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License a menos que se indique lo contrario.
Política de privacidad
Acerca de Bahaipedia
Descargos
Powered by MediaWiki