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:Wikidata/Fecha

De Bahaipedia
< Módulo:Wikidata
Saltar a:navegación, buscar

local p = {}
local Fechas = require( 'Módulo:Fechas')
local Romanos = require('Módulo:Números').Romano
local enlace

local function enlazar(etiqueta)
    if enlace == 'no' then
        return etiqueta
    else
        return '[['.. etiqueta ..']]'
    end
end

function formatear(fechahora, opciones)
	if opciones['formatoFecha'] == 'timestamp' then
		return fechahora.time
	end

	if fechahora == nil then
		return 'desconocida'
	end

    local etiqueta  = fechahora.label
    local timestamp = fechahora.time
    local precision = fechahora.precision    

    -- Decodificar el timestamp.
    --if true then return timestamp end
    local signo, annoSinSigno, mes, dia = timestamp:match("(%W)(%d+)%-(%d+)%-(%d+)")
    
    annoSinSigno = tonumber(annoSinSigno)
    
     -- Obtener la era
    local era = ''
    
    if signo == '-' then
        era = ' a. C.'
        annoConSigno = - annoSinSigno
    elseif annoSinSigno == 0 then -- Por comprobar si aún es así.
        annoSinSigno         = 1
        annoConSigno = -1
        era = ' a. C.'
    else
        annoConSigno = annoSinSigno
    end
    
    -- Informar el calendario
    local calendario 
    local mostrarCalendario = ''
    
    if fechahora.calendarmodel == 'http://www.wikidata.org/entity/Q1985786' then
        calendario = 'juliano'
        mostrarCalendario = '<sup>juliano</sup>'
    else
        calendario = 'gregoriano'
    end

    -- Informar el enlace utilizado en la función enlazar. OJO: No debe definirse como local
    enlace    = opciones.enlace

    if precision == 11 then      -- Fecha de la que se conoce el año, el mes y el día
        if opciones['formatoFecha'] == 'año' then
            return enlazar(annoSinSigno) .. mostrarCalendario .. era -- Devolver solo el año
        else
           return Fechas.Fecha({dia,mes,annoConSigno;enlace=opciones.enlace;calendario=calendario;['mayúscula']=opciones['mayúscula']})
        end
    elseif precision == 10 then  -- Fecha de la que se conoce el año y el mes
        if opciones['formatoFecha'] == 'año' then
            return enlazar(annoSinSigno) .. mostrarCalendario .. era -- Devolver solo el año
        else
            return Fechas.Fecha({'',mes,annoConSigno;enlace=opciones.enlace;calendario=calendario;['mayúscula']=opciones['mayúscula']})        
        end
    elseif precision == 9  then  -- Fecha de la que se conoce el año
        return Fechas.Fecha({'','',annoConSigno;enlace=opciones.enlace;calendario=calendario;['mayúscula']=opciones['mayúscula']})        
    elseif precision == 8  then  -- Fecha de la que se conoce la década
        local decada = math.floor(annoSinSigno/10)*10
        return enlazar('años '.. decada .. era) .. mostrarCalendario            
    elseif precision == 7  then  -- Fecha de la que se conoce el siglo
        --Ejemplos: 
        --   Eleno de Céspedes		+1600-00-00T00:00:00Z --> siglo XVI
        --   Margarita Armand Ugón	+1901-00-00T00:00:00Z --> siglo XX
        --   Aéropo I				-0700-01-01T00:00:00Z --> siglo VII a. C.
        --   						-0600-01-01T00:00:00Z --> siglo VI a. C.
        local siglo = Romanos(math.floor((annoSinSigno - 1)/100) + 1)
        
        if opciones['mayúscula'] == 'sí' then
            return enlazar('Siglo ' .. siglo .. era)    .. mostrarCalendario
        else
            return enlazar('siglo ' .. siglo .. era)    .. mostrarCalendario        
        end
    elseif precision == 6  then  -- Fecha de la que se conoce el milenio
        local milenio = Romanos(math.floor(annoSinSigno/1000))
        return enlazar(milenio .. ' milenio'.. era).. mostrarCalendario
    elseif precision == 5  then  -- Fecha de la que se conoce 10 000 años
         local milenio =  Romanos(math.floor(annoSinSigno/1000))
        return enlazar(milenio .. ' milenio'.. era)
    elseif precision == 4  then  -- Fecha de la que se conoce 100 000 años 
          local milenio =  Romanos(math.floor(annoSinSigno/1000))
        return enlazar(milenio.. ' milenio'.. era)       
    elseif precision == 3  then  -- Fecha de la que se conoce los millones de años
        return math.floor(annoSinSigno/1000000) .. ' millones de años' .. era  
    elseif precision == 2  then  -- Fecha de la que se conoce los 10 millones de años
        return math.floor(annoSinSigno/1000000) .. ' millones de años' .. era 
    elseif precision == 1  then  -- Fecha de la que se conoce los 100 millones de años
        return math.floor(annoSinSigno/1000000) .. ' millones de años' .. era 
    else
        return "<span class=error>Tipo de dato desconocido.</span>"        
    end    
end

function p.FormateaFechaHora(fechahora, opciones, calificativos)
    local idCircunstancia
        
    if calificativos                          and
       calificativos["P1480"]                 and -- circunstancias de la referencia
       calificativos["P1480"][1]              and
       calificativos["P1480"][1]['datavalue'] and
       calificativos["P1480"][1]['datavalue']['value'] then
               
        idCircunstancia = calificativos["P1480"][1]['datavalue']['value']['numeric-id']
               
        if idCircunstancia == 5727902 then -- circa
            return '[[circa|c.]]&nbsp;' .. formatear(fechahora, opciones)
        end
    end
    
    -- Valor por defecto si no se ha sabido formatear usando el calificativo
    return formatear(fechahora, opciones)
end

return p
Obtenido de «https://es.bahaipedia.org/index.php?title=Módulo:Wikidata/Fecha&oldid=2350»
Categoría:
  • Wikidata
Esta página se editó por última vez el 26 dic 2023 a las 11:39.
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