Spring til indhold

Modul:Fødselsår fra alder

Fra Wikipedia, den frie encyklopædi

local p = {}

require('Modul:No globals')

function p.entry(frame)
	local args = (frame == mw.getCurrentFrame()) and frame:getParent().args or frame.args
	local alder = tonumber(args[1])
	local aar = tonumber(args[2])
	local maaned = tonumber(args[3])
	local dag = tonumber(args[4])

	if not alder or not aar then return 'Alder og årstal ikke angivet' end

	local now = os.date('*t')
	local foedt_aar = '[[' .. aar - alder - 1 .. ']] eller [[' .. aar - alder .. ']]'
	local alder_nu = alder + (now.year - aar) -- alder på samme dato i nuværende år som datoen i kildens år
	if dag then
		if now.month > maaned or (now.month == maaned and now.day > dag) then
			-- senere på året end kildedatoen
			return foedt_aar .. ' (' .. alder_nu .. '-' .. alder_nu + 1 .. ' år)'
		elseif 	now.month < maaned or (now.month == maaned and now.day < dag) then
			-- tidligere på året end kildedatoen
			return foedt_aar .. ' (' .. alder_nu - 1 .. '-' .. alder_nu .. ' år)'
		else
			return foedt_aar .. ' (' .. alder_nu .. ' år)'
		end
	elseif maaned then
		if now.month > maaned then
			-- senere på året end kildedatoen
			return foedt_aar .. ' (' .. alder_nu .. '-' .. alder_nu + 1 .. ' år)'
		elseif 	now.month < maaned then
			-- tidligere på året end kildedatoen
			return foedt_aar .. ' (' .. alder_nu - 1 .. '- ' .. alder_nu .. ' år)'
		else
			return foedt_aar .. ' (' .. alder_nu - 1 .. '- ' .. alder_nu + 1 .. ' år)'
		end
	else
		return foedt_aar .. ' (' .. alder_nu - 1 .. '- ' .. alder_nu + 1 .. ' år)'
	end
end

return p