<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://dansunegalaxie.ca/index.php?action=history&amp;feed=atom&amp;title=Module%3ADur%C3%A9e</id>
	<title>Module:Durée - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://dansunegalaxie.ca/index.php?action=history&amp;feed=atom&amp;title=Module%3ADur%C3%A9e"/>
	<link rel="alternate" type="text/html" href="https://dansunegalaxie.ca/index.php?title=Module:Dur%C3%A9e&amp;action=history"/>
	<updated>2026-04-04T15:48:49Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://dansunegalaxie.ca/index.php?title=Module:Dur%C3%A9e&amp;diff=135&amp;oldid=prev</id>
		<title>Yuki : 1 version importée : Infobox</title>
		<link rel="alternate" type="text/html" href="https://dansunegalaxie.ca/index.php?title=Module:Dur%C3%A9e&amp;diff=135&amp;oldid=prev"/>
		<updated>2023-11-15T07:11:05Z</updated>

		<summary type="html">&lt;p&gt;1 version importée : Infobox&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;fr&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Version précédente&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version du 15 novembre 2023 à 03:11&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key dugwiki:diff::1.12:old-134:rev-135 --&gt;
&lt;/table&gt;</summary>
		<author><name>Yuki</name></author>
	</entry>
	<entry>
		<id>https://dansunegalaxie.ca/index.php?title=Module:Dur%C3%A9e&amp;diff=134&amp;oldid=prev</id>
		<title>wikipedia&gt;Golmote : args.noerror pour désactiver les erreurs</title>
		<link rel="alternate" type="text/html" href="https://dansunegalaxie.ca/index.php?title=Module:Dur%C3%A9e&amp;diff=134&amp;oldid=prev"/>
		<updated>2023-08-06T21:45:04Z</updated>

		<summary type="html">&lt;p&gt;args.noerror pour désactiver les erreurs&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local p = {}&lt;br /&gt;
&lt;br /&gt;
local Outils = require &amp;#039;Module:Outils&amp;#039;&lt;br /&gt;
&lt;br /&gt;
-- liste des mois, écriture exacte et simplifiée, en minuscule&lt;br /&gt;
local liste_mois = {&lt;br /&gt;
	{ &amp;quot;janvier&amp;quot;, &amp;quot;jan.&amp;quot;, &amp;quot;janv.&amp;quot;, &amp;quot;jan&amp;quot;, &amp;quot;janv&amp;quot;, &amp;quot;january&amp;quot;, nJour = 31 },&lt;br /&gt;
	{ &amp;quot;février&amp;quot;, &amp;quot;fevrier&amp;quot;, &amp;quot;fev.&amp;quot;, &amp;quot;fev&amp;quot;, &amp;quot;fév.&amp;quot;, &amp;quot;fév&amp;quot;, &amp;quot;february&amp;quot;, nJour = 28 },&lt;br /&gt;
	{ &amp;quot;mars&amp;quot;, &amp;quot;mar.&amp;quot;, &amp;quot;mar&amp;quot;, &amp;quot;march&amp;quot;, nJour = 31 },&lt;br /&gt;
	{ &amp;quot;avril&amp;quot;, &amp;quot;avr.&amp;quot;, &amp;quot;avr&amp;quot;, &amp;quot;apr&amp;quot;, &amp;quot;april&amp;quot;, nJour = 30 },&lt;br /&gt;
	{ &amp;quot;mai&amp;quot;, &amp;quot;may&amp;quot;, nJour = 31 },&lt;br /&gt;
	{ &amp;quot;juin&amp;quot;, &amp;quot;jun&amp;quot;, &amp;quot;june&amp;quot;, nJour = 30 },&lt;br /&gt;
	{ &amp;quot;juillet&amp;quot;, &amp;quot;juil.&amp;quot;, &amp;quot;juil&amp;quot;, &amp;quot;juill.&amp;quot;, &amp;quot;juill&amp;quot;, &amp;quot;jul&amp;quot;, &amp;quot;july&amp;quot;, nJour = 31 },&lt;br /&gt;
	{ &amp;quot;août&amp;quot;, &amp;quot;aout&amp;quot;, &amp;quot;aou&amp;quot;, &amp;quot;aug&amp;quot;, &amp;quot;august&amp;quot;, nJour = 31 },&lt;br /&gt;
	{ &amp;quot;septembre&amp;quot;, &amp;quot;sept.&amp;quot;, &amp;quot;sept&amp;quot;, &amp;quot;sep.&amp;quot;, &amp;quot;sep&amp;quot;, &amp;quot;september&amp;quot;, nJour = 30 },&lt;br /&gt;
	{ &amp;quot;octobre&amp;quot;, &amp;quot;oct.&amp;quot;, &amp;quot;oct&amp;quot;, &amp;quot;october&amp;quot;, nJour = 31 },&lt;br /&gt;
	{ &amp;quot;novembre&amp;quot;, &amp;quot;nov.&amp;quot;, &amp;quot;nov&amp;quot;, &amp;quot;november&amp;quot;, nJour = 30 },&lt;br /&gt;
	{ &amp;quot;décembre&amp;quot;, &amp;quot;decembre&amp;quot;, &amp;quot;déc.&amp;quot;, &amp;quot;dec.&amp;quot;, &amp;quot;dec&amp;quot;, &amp;quot;déc&amp;quot;, &amp;quot;december&amp;quot;, nJour = 31 },&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
local function joursMois( m, a )&lt;br /&gt;
	a = a or 1&lt;br /&gt;
	if m == 0 then&lt;br /&gt;
		return 31&lt;br /&gt;
	elseif m == 2 then&lt;br /&gt;
		local b = ( a % 4 == 0 ) and ( ( a % 100 ~= 0 ) or ( a % 400 == 0 ) )&lt;br /&gt;
		return 28 + ( b and 1 or 0 )&lt;br /&gt;
	else&lt;br /&gt;
		return liste_mois[m].nJour&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
local function erreur( texte )&lt;br /&gt;
	local cat = &amp;#039;[[Catégorie:Page utilisant un modèle avec une syntaxe erronée|Durée]]&amp;#039;&lt;br /&gt;
	local message = &amp;#039;&amp;lt;span class=&amp;quot;error&amp;quot;&amp;gt;erreur : &amp;#039;  .. texte .. &amp;#039;&amp;lt;/span&amp;gt;&amp;#039;&lt;br /&gt;
	local ns = mw.title.getCurrentTitle().namespace&lt;br /&gt;
	if ns == 0 then&lt;br /&gt;
		return message .. cat&lt;br /&gt;
	else&lt;br /&gt;
		return message&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
local function determinationMois( mois )&lt;br /&gt;
	if tonumber( mois ) then&lt;br /&gt;
		local num = math.floor( tonumber( mois ) )&lt;br /&gt;
		if num &amp;gt; 0 and num &amp;lt;= 12 then&lt;br /&gt;
			return num&lt;br /&gt;
		end&lt;br /&gt;
	elseif type( mois ) == &amp;#039;string&amp;#039; and mw.text.trim( mois ) ~= &amp;#039;&amp;#039; then&lt;br /&gt;
		local nom = mw.ustring.lower( mois )&lt;br /&gt;
		for num = 1, 12 do&lt;br /&gt;
			local i = 1&lt;br /&gt;
			while liste_mois[num][i] do&lt;br /&gt;
				if liste_mois[num][i] == nom then&lt;br /&gt;
					return num&lt;br /&gt;
				end&lt;br /&gt;
				i = i + 1&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
function p._duree( args )&lt;br /&gt;
	local maintenant = os.date( &amp;#039;!*t&amp;#039; )&lt;br /&gt;
	local fuseau = mw.getContentLanguage():formatDate(&amp;quot;Z&amp;quot;, nil, true)/3600&lt;br /&gt;
	if maintenant.hour + fuseau &amp;gt; 23 then&lt;br /&gt;
		maintenant.day = maintenant.day + 1&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local enjours = args[&amp;quot;en jours&amp;quot;]&lt;br /&gt;
	local enmois = args[&amp;quot;en mois&amp;quot;]&lt;br /&gt;
	local enanneesetjours = args[&amp;quot;en années et jours&amp;quot;]&lt;br /&gt;
	local enannee = not enanneesetjours and (args[&amp;quot;en année&amp;quot;] or args[&amp;quot;en années&amp;quot;])&lt;br /&gt;
	local raw = (args[&amp;quot;raw&amp;quot;] and args[&amp;quot;raw&amp;quot;] ~= &amp;quot;-&amp;quot;) or (args[&amp;quot;brut&amp;quot;] and args[&amp;quot;brut&amp;quot;] ~= &amp;quot;-&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
	local precision = &amp;#039;jour&amp;#039;&lt;br /&gt;
	local jour1 = tonumber( args[1] )&lt;br /&gt;
	local mois1 = determinationMois( args[2] )&lt;br /&gt;
	local annee1 = tonumber( args[3] )&lt;br /&gt;
	if jour1 and jour1 &amp;gt; 31 and (not annee1 or annee1 &amp;lt;= 31) then&lt;br /&gt;
		local y = jour1&lt;br /&gt;
		jour1 = annee1&lt;br /&gt;
		annee1 = y&lt;br /&gt;
	end&lt;br /&gt;
	if not jour1 then&lt;br /&gt;
		precision = &amp;#039;mois&amp;#039;&lt;br /&gt;
		-- jour1 = maintenant.day&lt;br /&gt;
		jour1 = 1&lt;br /&gt;
	end&lt;br /&gt;
	if not mois1 then &lt;br /&gt;
		if precision == &amp;#039;mois&amp;#039; then&lt;br /&gt;
			precision = &amp;#039;an&amp;#039;&lt;br /&gt;
			-- mois1 = maintenant.month&lt;br /&gt;
			mois1 = 1&lt;br /&gt;
		elseif not args.noerror then&lt;br /&gt;
			return erreur( &amp;#039;mois invalide (&amp;#039; .. ( args[2] or &amp;#039;&amp;#039; ) .. &amp;#039;)&amp;#039; )&lt;br /&gt;
		else&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if not annee1 then&lt;br /&gt;
		if precision == &amp;#039;an&amp;#039; then&lt;br /&gt;
			return&lt;br /&gt;
			-- return erreur( &amp;#039;aucune année fournit&amp;#039; ) -- suggestion&lt;br /&gt;
		else&lt;br /&gt;
			annee1 = maintenant.year&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local jour2 = tonumber( args[4] ) or maintenant.day&lt;br /&gt;
	local mois2 = determinationMois( args[5] ) or maintenant.month&lt;br /&gt;
	local annee2 = tonumber( args[6])  or maintenant.year&lt;br /&gt;
	if jour2 &amp;gt; 31 and annee2 &amp;lt;= 31 then&lt;br /&gt;
		local y = jour2&lt;br /&gt;
		jour2 = annee2&lt;br /&gt;
		annee2 = y&lt;br /&gt;
	end&lt;br /&gt;
		&lt;br /&gt;
	local tri = os.difftime(&lt;br /&gt;
		os.time{ year = annee2, month = mois2, day = jour2 },&lt;br /&gt;
		os.time{ year = annee1, month = mois1, day = jour1 }&lt;br /&gt;
		) / 86400&lt;br /&gt;
	if tri &amp;lt; 0 then&lt;br /&gt;
		if not args.noerror then&lt;br /&gt;
			return erreur( &amp;#039;durée inférieure à 0&amp;#039; )&lt;br /&gt;
		else&lt;br /&gt;
			return&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	local nbjours = tri&lt;br /&gt;
	tri = 0 .. tostring( tri )&lt;br /&gt;
	tri = string.rep( &amp;#039;&amp;amp;&amp;#039;, 16 - #tri ) .. tri&lt;br /&gt;
	local textattrs = { class = &amp;#039;datasortkey&amp;#039;, [&amp;#039;data-sort-value&amp;#039;] = tri }&lt;br /&gt;
	&lt;br /&gt;
	if enjours then&lt;br /&gt;
		if raw then&lt;br /&gt;
			return nbjours&lt;br /&gt;
		else&lt;br /&gt;
			local moduleUnite = require &amp;#039;Module:Unité&amp;#039;&lt;br /&gt;
			local unit&lt;br /&gt;
			if not args[&amp;#039;masquer texte&amp;#039;] or args[&amp;#039;masquer texte&amp;#039;] == &amp;#039;&amp;#039; then &lt;br /&gt;
				if nbjours&amp;gt; 1 then unit = &amp;#039;jours&amp;#039; else unit = &amp;#039;jour&amp;#039; end&lt;br /&gt;
			end&lt;br /&gt;
			nbjours = moduleUnite._unite({nbjours, unit})&lt;br /&gt;
			if args.sorttype == &amp;#039;raw&amp;#039; then return nbjours else&lt;br /&gt;
				return mw.text.tag{ name = &amp;#039;span&amp;#039;, attrs = textattrs, content = nbjours }&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local njour = jour2 - jour1&lt;br /&gt;
	local nmois = mois2 - mois1&lt;br /&gt;
	local nannee = annee2 - annee1&lt;br /&gt;
	if njour &amp;lt; 0 then&lt;br /&gt;
		nmois = nmois - 1&lt;br /&gt;
		njour = njour + joursMois( mois2 - 1, annee2 )&lt;br /&gt;
	end&lt;br /&gt;
	if nmois &amp;lt; 0 then&lt;br /&gt;
		nannee = nannee - 1&lt;br /&gt;
		nmois = nmois + 12&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if enmois then&lt;br /&gt;
		local nbmois = nannee * 12 + nmois&lt;br /&gt;
		if raw then&lt;br /&gt;
			return nbmois&lt;br /&gt;
		else&lt;br /&gt;
			local moduleUnite = require &amp;#039;Module:Unité&amp;#039;&lt;br /&gt;
			local unit&lt;br /&gt;
			if not args[&amp;#039;masquer texte&amp;#039;] or args[&amp;#039;masquer texte&amp;#039;] == &amp;#039;&amp;#039; then&lt;br /&gt;
				unit = &amp;#039;mois&amp;#039;&lt;br /&gt;
			end&lt;br /&gt;
			nbmois = moduleUnite._unite({nbmois, unit})&lt;br /&gt;
			if args.sorttype == &amp;#039;raw&amp;#039; then return nbmois else&lt;br /&gt;
				return mw.text.tag{ name = &amp;#039;span&amp;#039;, attrs = textattrs, content = nbmois }&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if enannee then&lt;br /&gt;
		if raw then&lt;br /&gt;
			return nannee&lt;br /&gt;
		else&lt;br /&gt;
			local moduleUnite = require &amp;#039;Module:Unité&amp;#039;&lt;br /&gt;
			local unit&lt;br /&gt;
			if not args[&amp;#039;masquer texte&amp;#039;] or args[&amp;#039;masquer texte&amp;#039;] == &amp;#039;&amp;#039; then &lt;br /&gt;
				if nannee &amp;gt; 1 then unit = &amp;#039;ans&amp;#039; else unit = &amp;#039;an&amp;#039; end&lt;br /&gt;
			end&lt;br /&gt;
			nannee = moduleUnite._unite({nannee, unit})&lt;br /&gt;
			if args.sorttype == &amp;#039;raw&amp;#039; then return nannee else&lt;br /&gt;
				return mw.text.tag{ name = &amp;#039;span&amp;#039;, attrs = textattrs, content = nannee }&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	local result = {}&lt;br /&gt;
	local conjunction&lt;br /&gt;
	local function add( nombre, singulier, pluriel )&lt;br /&gt;
		if nombre &amp;gt; 0 then&lt;br /&gt;
			local texte = pluriel&lt;br /&gt;
			if nombre == 1 then&lt;br /&gt;
				texte = singulier&lt;br /&gt;
			end&lt;br /&gt;
			table.insert( result, nombre .. &amp;#039;\194\160&amp;#039; .. texte )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
	if enanneesetjours then&lt;br /&gt;
		if args.conjtype == &amp;#039;and&amp;#039; then conjunction = &amp;#039; et &amp;#039; else conjunction = &amp;#039;, &amp;#039; end&lt;br /&gt;
		if precision ~= &amp;#039;an&amp;#039; then&lt;br /&gt;
			nannee = annee2 - annee1&lt;br /&gt;
			njour = os.difftime(&lt;br /&gt;
				os.time{ year = annee2, month = mois2, day = jour2 },&lt;br /&gt;
				os.time{ year = annee2, month = mois1, day = jour1 }&lt;br /&gt;
				) / 86400&lt;br /&gt;
			if njour &amp;lt; 0 then&lt;br /&gt;
				nannee = nannee - 1&lt;br /&gt;
				njour = os.difftime(&lt;br /&gt;
					os.time{ year = annee2, month = mois2, day = jour2 },&lt;br /&gt;
					os.time{ year = annee2, month = 1, day = 1}&lt;br /&gt;
					) / 86400&lt;br /&gt;
					+ os.difftime(&lt;br /&gt;
					os.time{ year = annee1 + 1, month = 1, day = 1},&lt;br /&gt;
					os.time{ year = annee1, month = mois1, day = jour1 }&lt;br /&gt;
					) / 86400&lt;br /&gt;
			end&lt;br /&gt;
			add( nannee, &amp;#039;an&amp;#039;, &amp;#039;ans&amp;#039; )&lt;br /&gt;
			add( njour, &amp;#039;jour&amp;#039;, &amp;#039;jours&amp;#039; )&lt;br /&gt;
		else&lt;br /&gt;
			add( nannee, &amp;#039;an&amp;#039;, &amp;#039;ans&amp;#039; )&lt;br /&gt;
		end&lt;br /&gt;
	else&lt;br /&gt;
		add( nannee, &amp;#039;an&amp;#039;, &amp;#039;ans&amp;#039; )&lt;br /&gt;
		if precision ~= &amp;#039;an&amp;#039; then&lt;br /&gt;
			add( nmois, &amp;#039;mois&amp;#039;, &amp;#039;mois&amp;#039; )&lt;br /&gt;
		end&lt;br /&gt;
		if precision == &amp;#039;jour&amp;#039; then&lt;br /&gt;
			add( njour, &amp;#039;jour&amp;#039;, &amp;#039;jours&amp;#039; )&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if #result == 0 then&lt;br /&gt;
		result[1] = &amp;#039;moins d’un &amp;#039; .. precision&lt;br /&gt;
		tri = 0&lt;br /&gt;
	end&lt;br /&gt;
	&lt;br /&gt;
	local nanneescompl = mw.text.listToText( result, nil, conjunction )&lt;br /&gt;
	&lt;br /&gt;
	if args.sorttype == &amp;#039;raw&amp;#039; then return nanneescompl else&lt;br /&gt;
		return mw.text.tag{ name = &amp;#039;span&amp;#039;, attrs = textattrs, content = nanneescompl }&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function p.duree( frame )&lt;br /&gt;
	local args = Outils.extractArgs( frame )&lt;br /&gt;
	for i = 1, 6 do&lt;br /&gt;
		if tonumber( args[i] ) == 0 then&lt;br /&gt;
			args[i] = &amp;#039;&amp;#039;&lt;br /&gt;
		end&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	return p._duree( args )&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
return p&lt;/div&gt;</summary>
		<author><name>wikipedia&gt;Golmote</name></author>
	</entry>
</feed>