Module:Âge

De Poképédia
Aller à la navigation Aller à la recherche

Permet de calculer l'âge d'une personne en fonction de sa date de naissance.


local p = {}

function p.calculer( frame )
	args = frame.args
	local an = args[1]
	local mn = args[2]
	local jn = args[3]
	local ac = args[4]
	local mc = args[5]
	local jc = args[6]
	return p.calculerInterne(an, mn, jn, ac, mc, jc)
	--return "1: " .. an .. " - 2: " .. mn
end

-- retourne l'age en fonction de la ou les dates fournies. La valeur retounée est de type 'number'
-- Parammètres :
-- 1, 2, 3 : année, mois jour de naissance (supposé dans le calendrier grégorien)
-- 4, 5, 6 : année, mois, joue du calcul (facultatif, par défaut la date UTC courante).
function p.calculerInterne	
	( an, mn, jn, ac, mc, jc )
	if ac == nil then
		local today = os.date( '!*t' )
		ac = today.year
		mc = today.month
		jc = today.day
	else
		ac = tonumber( ac )
		mc = tonumber( mc )
		jc = tonumber( jc )
	end

	local an = tonumber( an )
	local mn = tonumber( mn )
	local jn = tonumber( jn )

	if an == nil or ac == nil or mn == nil or mc == nil then
		-- pas de message d'erreur qui risque de faire planter la fonction appelante
		-- à elle de gérer ce retour.
		return
	end
	
	local age = ac - an
	if mc == mn then
		if jc == nil or jn == nil then
			return
		end
		return age-tonumber( jc < jn and 1 or 0 )
	else
		return age-tonumber( mc < mn and 1 or 0 )
	end
end

return p