Module:Durée seule
Apparence
[voir] [modifier] [historique] [purger]
Utilisation
[modifier le code]Fonctions exportables :
dureeseule(frame)
– implémentaton du modèle {{Durée seule}}.
Modules externes et autres éléments dont ce module a besoin pour fonctionner :
- aucun.
Exemples
[modifier le code]Pour des exemples, voir le modèle {{Durée seule}}.
La documentation de ce module est générée par le modèle {{Documentation module}}.
Elle est incluse depuis sa sous-page de documentation. Veuillez placer les catégories sur cette page-là.
Les éditeurs peuvent travailler dans le bac à sable (créer).
Voir les statistiques d'appel depuis le wikicode sur l'outil wstat et les appels depuis d'autres modules.
--[[
Implémentation du modèle "Durée seule".
]]
local p = {}
--[[
Formatage d'un message d'erreur.
]]
local function erreur(msg)
return '<span class="error">' .. msg .. '</span>'
end
--[[
Implémentation du modèle "Durée seule".
]]
function p.dureeseule(frame)
-- validation des arguments
local args = frame:getParent().args
local jj = args[1]; if not jj then return erreur("argument 1 (jours) manquant") end
local mm = args[2]; if not mm then return erreur("argument 2 (mois) manquant") end
local aa = args[3]; if not aa then return erreur("argument 3 (années) manquant") end
if not string.match(jj, "^%d+$") then return erreur("argument 1 (jours) non numérique") end
if not string.match(mm, "^%d+$") then return erreur("argument 2 (mois) non numérique") end
if not string.match(aa, "^%d+$") then return erreur("argument 3 (années) non numérique") end
jj = tonumber(jj); if jj > 31 then return erreur("argument 1 (jours) supérieur à 31") end
mm = tonumber(mm); if mm > 12 then return erreur("argument 2 (mois) supérieur à 12") end
aa = tonumber(aa); if aa > 9999 then return erreur("argument 3 (année) supérieur à 9999") end
-- formatage du texte
local texte
if aa == 0 then texte = ""
elseif aa == 1 then texte = "1 an"
else texte = aa .. " ans"
end
if mm > 0 then
if texte ~= "" then
if (jj > 0) then texte = texte .. ", "
else texte = texte .. " et "
end
end
texte = texte .. mm .. " mois"
end
if jj > 0 then
if texte ~= "" then texte = texte .. " et "
end
if jj == 1 then texte = texte .. jj .. " jour"
else texte = texte .. jj .. " jours"
end
end
if texte == "" then texte = "0 jour"
end
-- ajout des informations de tri
local tri = string.format("%6.6d%4.4d%4.4d", aa, mm, jj)
texte = "<span data-sort-value=\"&" .. tri .. "\" class=\"datasortkey\">" .. texte .. "</span>"
return texte
end
return p