Module:Dato og aldur
Hetta modulið heintar føðingardagar og deyðsdagar frá Wikidata og kemur aftur við leinjaðum dato og ári, umframt at rokna út aldur út frá muninum millum hesi bæði. Dersom dødsdato ikke er oppgitt, beregner den alderen ut i fra differansen mellom fødselsdato og dagens dato.
Nýtsla
rættaModulið er primert hugsað til nýtslu í infoboksum, tvs. sum ein partur av fyrimynd-kotuni, ikki sum ein partur av infoboksini í eini grein.
- Dømi um føðidato
|føddur= {{#if:{{{føddur|{{{føðidato|}}}}}}|{{{føddur|{{{føðidato|}}}}}}|{{#invoke:Dato og aldur|bda}}}}
Um so er at parameturið |føddur=
ella |føðidato=
er upplýst, so verða dáta vald frá hesum. Um hesi ikki eru upplýst, so verða dáta heintað frá Wikidata. Um so er at deyðsdato ikki er upplýst á Wikidata, so verður aldur endurgivin í hesum teigi, grundað á muninum millum dagsins dato og føðidato. Úrslitið í hesum teigi verður leinkjaður og í forminum dd. mmmm áááá (xx ár)
, evt. dd. mmmm áááá
um persónurin er deyður.
- Dømi um deyðsdato
|deyður= {{#if:{{{deyður|{{{deyðsdato|}}}}}}|{{{deyður|{{{deyðsdato|}}}}}}|{{#invoke:Dato og aldur|dda}}}}
Um so er at parameturið |deyður=
ella |deyðsdato=
er upplýst, so verða dáta vald frá hesum. Um hesi bæði ikki eru upplýst, so verða dáta heintað frá Wikidata. Um so er at føðidato ikki er upplýst á Wikidata, verður einki givið aftur. Úrslitið í hesum teigi verður leinkjaður og í forminum dd. mmmm áááá (xx ár)
.
Error
Kunne ikke lese wikitekst fra "Module:Dato og aldur/sandkassi".
local p = {}
local lang = mw.getContentLanguage()
if not mw.wikibase then
return ""
end
local artikkel = mw.wikibase.getEntity()
if not artikkel then
return "[[Bólkur:Greinir ið mangla á Wikidata]]"
end
local claims = artikkel.claims
if not claims then
return "[[Bólkur:Greinir ið mangla útsøgn á Wikidata]]"
end
function p.bda(frame)
local p569 = artikkel.claims.p569
if not p569 then
return ""
end
local birthdate = artikkel.claims.p569[0].mainsnak.datavalue.value["time"]
if not birthdate then
return ""
end
birth_date = string.sub(birthdate,9,12) .. '-' .. string.sub(birthdate,14,15) .. '-' .. string.sub(birthdate,17,18)
local day = lang:formatDate('j. F', birth_date)
local year = lang:formatDate('Y', birth_date)
assert(tonumber(year), birth_date)
birth_date = day.." "..year
-- birth_cat = '[[Bólkur:Føðingar ' .. day .. ']][[Bólkur:Føðingar í ' .. year .. ']]' (avventer dette)
local d = os.date('!*t')
local current_year = d.year
local current_month = d.month
local current_day = d.day
local age
local p570 = artikkel.claims.p570
if not p570 then
if tonumber(current_day) >= tonumber(string.sub(birthdate,17,18)) then
if tonumber(current_month) >= tonumber(string.sub(birthdate,14,15)) then
age = ' (' .. tonumber(current_year) - tonumber(string.sub(birthdate,9,12)) .. ' ár)'
else
age = ' (' .. tonumber(current_year) - tonumber(string.sub(birthdate,9,12)) - 1 .. ' ár)'
end
else
if tonumber(current_month) > tonumber(string.sub(birthdate,14,15)) then
age = ' (' .. tonumber(current_year) - tonumber(string.sub(birthdate,9,12)) .. ' ár)'
else
age = ' (' .. tonumber(current_year) - tonumber(string.sub(birthdate,9,12)) - 1 .. ' ár)'
end
end
else
age = ''
end
return birth_date .. age -- .. birth_cat (avventer dette)
end
function p.dda(frame)
local p570 = artikkel.claims.p570
if not p570 then
return ""
end
local deathdate = artikkel.claims.p570[0].mainsnak.datavalue.value["time"]
if not deathdate then
return ""
end
death_date = string.sub(deathdate,9,12) .. '-' .. string.sub(deathdate,14,15) .. '-' .. string.sub(deathdate,17,18)
local day = lang:formatDate('j. F', death_date)
local year = lang:formatDate('Y', death_date)
assert(tonumber(year), death_date)
death_date = day.." "..year
-- death_cat = '[[Bólkur:Andlát ' .. day .. ']][[Bólkur:Andlát í ' .. year .. ']]' (avventer dette)
local age
local birthdate = artikkel.claims.p569[0].mainsnak.datavalue.value["time"]
if not birthdate then
return ""
end
if tonumber(string.sub(deathdate,17,18)) >= tonumber(string.sub(birthdate,17,18)) then
if tonumber(string.sub(deathdate,14,15)) >= tonumber(string.sub(birthdate,14,15)) then
age = ' (' .. tonumber(string.sub(deathdate,9,12)) - tonumber(string.sub(birthdate,9,12)) .. ' ár)'
else
age = ' (' .. tonumber(string.sub(deathdate,9,12)) - tonumber(string.sub(birthdate,9,12)) - 1 .. ' ár)'
end
else
if tonumber(string.sub(deathdate,14,15)) > tonumber(string.sub(birthdate,14,15)) then
age = ' (' .. tonumber(string.sub(deathdate,9,12)) - tonumber(string.sub(birthdate,9,12)) .. ' ár)'
else
age = ' (' .. tonumber(string.sub(deathdate,9,12)) - tonumber(string.sub(birthdate,9,12)) - 1 .. ' ár)'
end
end
return death_date .. age -- .. death_cat (aventer dette)
end
return p