Module:Année-lumière
Apparence
La documentation de ce module est générée par le modèle {{Documentation module}}.
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.
local p = {}
-- Conversion d'années-lumière en parsecs
function p.convertir_en_pc(distance_en_al)
return distance_en_al * 0.306601 -- 1 AL ≈ 0.306601 pc
end
-- Fonction principale pour formater la distance
function p.formater(distance, unite, prefixe, marge)
-- S'assurer que distance est un nombre
local distance_en_al = tonumber(distance)
if not distance_en_al then return "Distance invalide" end
local distance_en_pc = p.convertir_en_pc(distance_en_al)
-- Calcul des multiples
local kpc = distance_en_pc / 1000
local mpc = distance_en_pc / 1000000
local gpc = distance_en_pc / 1000000000
-- Ajout du préfixe
local prefixe_str = prefixe and " ≃ " or ""
-- Marges
local marge_str = marge and string.format(" ± %.2f", marge) or ""
-- Formatage des résultats selon l'unité
if unite == "kal" then
local kal = distance_en_al / 1000
return string.format("%.2f K[[Année-lumière|al]]%s%s(%.2f k[[Parsec|pc]])", kal, prefixe_str, marge_str, p.convertir_en_pc(kal * 1000) / 1000)
elseif unite == "mal" then
local mal = distance_en_al / 1000000
return string.format("%.2f %sM[[Année-lumière|al]]%s(%.2f M[[Parsec|pc]])", prefixe_str .. mal, marge_str, p.convertir_en_pc(mal * 1000000) / 1000000)
elseif unite == "gal" then
local gal = distance_en_al / 1000000000
return string.format("%.2f %sG[[Année-lumière|al]]%s(%.2f G[[Parsec|pc]])", prefixe_str .. gal, marge_str, p.convertir_en_pc(gal * 1000000000) / 1000000000)
else
return string.format("%.2f %sal%s(%.2f [[Parsec|pc]], %.2f k[[Parsec|pc]], %.2f M[[Parsec|pc]], %.2f G[[Parsec|pc]])",
distance_en_al, prefixe_str, marge_str, distance_en_pc, kpc, mpc, gpc)
end
end
return p