Modul:Dato og alder/sandkasse

Fra Wikipedia, den frie encyklopedi
Moduldokumentasjon

Denne modulen henter fødselsdatoer og dødsdatoer fra Wikidata og returnerer lenket dato og år, samt beregner alder ut i fra differansen mellom disse to. Dersom dødsdato ikke er oppgitt, beregner den alderen ut i fra differansen mellom fødselsdato og dagens dato.

Bruk[rediger kilde]

Modulen er primært tenkt brukt i infobokser, det vil si som en del av malkoden, ikke som en del av infoboksen i en artikkel.

Eksempel for fødselsdatoer
  • |født= {{#if:{{{født|{{{fødselsdato|}}}}}}|{{{født|{{{fødselsdato|}}}}}}|{{#invoke:Dato og alder|bda}}}}

Dersom parameteren |født= eller |fødselsdato= er angitt, velges data fra disse. Dersom disse to ikke er angitt, hentes data fra Wikidata. Dersom dødsdato ikke er angitt på Wikidata, vil alder returneres i dette feltet, basert på differansen mellom dagens dato og fødselsdato. Resultatet i dette feltet vil bli lenket og på formen dd. mmmm åååå (xx år), evt. dd. mmmm åååå hvis personen er død.

Eksempel for dødsdatoer
  • |død= {{#if:{{{død|{{{dødsdato|}}}}}}|{{{død|{{{dødsdato|}}}}}}|{{#invoke:Dato og alder|dda}}}}

Dersom parameteren |død= eller |dødsdato= er angitt, velges data fra disse. Dersom disse to ikke er angitt, hentes data fra Wikidata. Dersom dersom fødselsdato ikke er angitt på Wikidata, vil den ikke returnere noe. Resultatet i dette feltet vil bli lenket og på formen dd. mmmm åååå (xx år).



local p = {}
local formatISOdate = require('Modul:ISOtilNorskdato').formatIsoDate
local lang = mw.getContentLanguage() 

function p.bd(frame)
	if not mw.wikibase then
		return ""
	end
	local artikkel = mw.wikibase.getEntity()
	if not artikkel then
		return "[[Kategori:Artikler som mangler på Wikidata]]"
	end
	local claims = artikkel.claims
	if not claims then
		return "[[Kategori:Artikler som mangler utsagn på Wikidata]]"
	end

	local p569 = claims.p569
	if not p569 then
		return ""
	end
	local birthdate = p569[0].mainsnak.datavalue.value["time"]
	if not birthdate then
		return ""
	end
	birth_date = string.sub(birthdate,2,5) .. '-' .. string.sub(birthdate,7,8) .. '-' .. string.sub(birthdate,10,11)
	local bdOut = formatISOdate(birth_date)
	return bdOut
end

return p