« Module:Date » : différence entre les versions
Contenu supprimé Contenu ajouté
liste_mois : + abréviation févr. |
modeleDate : ajout paramètre "compact" pour afficher le mois sous forme d'abréviation ; validationJourMoisAnnee : erreur si année 0 |
||
Ligne 26 :
-- liste des mois, écriture exacte et
local
{
{
{
{
{
{
{
{ num = 8, nJour = 31, abrev = 'août', nom = 'août', alias = { 'aoû', 'aug', 'august' } },
{
{ num = 10, nJour = 31, abrev = 'oct.', nom = 'octobre', alias = { 'oct.', 'oct', 'october' } },
{ num = 11, nJour = 30, abrev = 'nov.', nom = 'novembre', alias = { 'nov.', 'nov', 'november' } },
{
aout = { num = 8, nJour = 31, abrev = 'aout', nom = 'aout', alias = { 'aou' } },
}
-- ajoute les noms, abreviations et alias en tant que clé de listeMois
listeMois[ tostring( i ) ] = listeMois[ i ]
listeMois[ '0' .. i ] = listeMois[ i ]
listeMois[ listeMois[ i ].nom ] = listeMois[ i ]
listeMois[ listeMois[ i ].abrev ] = listeMois[ i ]
while listeMois[ i ].alias[ j ] do
listeMois[ listeMois[ i ].alias[ j ] ] = listeMois[ i ]
end▼
end▼
for _, n in ipairs( listeMois.aout.alias ) do
listeMois[ n ] = listeMois.aout
local liste_saison = {
Ligne 49 ⟶ 65 :
{ 'hiver', 'winter', },
}
▲ end
▲end
---
-- valide que la chaîne passée est un mois valide.
-- retourne le nom complet
function fun.valideMois( mois )
local m = trim( mois )
if m then
m = mw.ustring.lower( m )
return listeMois[ m ].nom, listeMois[ m ].num
local j = 1▼
while liste_mois[i][j] do▼
if liste_mois[i][j] == m then▼
return liste_mois[i][1], i▼
end▼
end▼
end
end
end
Ligne 84 :
-- si reconnu, retourne aussi le numéro du mois [1-12]
function fun.valideSaison( saison )
if s then
▲ end
▲ local j = 1
▲ local m = mw.ustring.lower( trim( saison ) )
▲ for i = 1, 4 do
▲ local j = 1
▲ end
end
▲ j = j + 1
end
end
end
Ligne 125 ⟶ 122 :
end
if num and not nom then
nom =
end
return nom, num
Ligne 337 ⟶ 334 :
return erreur( 'Année', bannee )
end
elseif annee == 0 then
return erreur( 'Année', 0 )
end
else
Ligne 363 ⟶ 362 :
if jour < 1 or jour > 31 then
return erreur( 'Jour', bjour )
elseif jour >
return erreur( 'Jour', bjour .. ' ' .. mois )
elseif jour == 29 and numMois == 2 and annee and ( math.fmod( annee, 4 ) ~= 0 ) then
Ligne 416 ⟶ 415 :
end
---
-- analyse des paramètres 1, 2, 3 et 4
-- pour déterminer les paramètres jour, moisn année, qualificatif, masquerAnnee, et masquerMois
function fun.modeleDateAnalyseJMA( args )
local function masquerParam( p )
-- sépare le signe moins final éventuel signifiant que le paramètre ne soit pas être affiché. local s
if trim( p ) then
Ligne 453 ⟶ 456 :
-- émule le modèle {{m|Date}}.
-- Paramètres :
-- 1 : jour (numéro ou "1er")
-- 2 : mois (en toutes lettres) ou spécialité de l'année
-- 3 : année (nombre)
-- 4 :
-- julien : date dans le calendrier julien
-- compact : affiche le mois sous forme d'abréviation
-- avJC : non pour désactiver l'affichage de « av. J.-C. » pour les date négatives
-- âge : ajout la durée depuis cette date
-- nolink : ne met pas de lien sur la date
-- naissance : ajoute la class "bday"
-- mort : ajoute la class "dday"
function fun.modeleDate( frame )
local args = Outils.extractArgs( frame )
Ligne 475 ⟶ 482 :
avJC = 'avJC',
nolinks = 'nolinks',
compact = 'compact',
compacte = 'compact',
}
for n, v in pairs( listeParam ) do
Ligne 500 ⟶ 509 :
-- on traite l'age, naissance et mort
local age = trim( args['âge']
local naissance = trim( args.naissance )
local mort = trim( args.mort )
Ligne 507 ⟶ 515 :
-- on traite le calendrier
local gannee, gmois, gjour = annee, numMois, jour -- date suivant le calendrier grégorien pour <time>
local jannee, jmois, jjour = annee, mois, jour -- servira éventuellement à a affiché la date selon le calendrier julien
local julien2, julien3 = nil, nil -- servira éventuellement à a affiché des parenthèses
local julien = trim( string.lower( args.julien or '' ) )
Ligne 521 ⟶ 529 :
elseif julien == 'oui' then
gannee, gmois, gjour = fun.julianToGregorian( annee, numMois, jour )
annee, mois, jour = gannee,
end
else
Ligne 535 ⟶ 543 :
local wikiListe = TableBuilder.new() -- reçois le texte affiché pour chaque paramètre
local iso = TableBuilder.new() -- reçois le format date ISO de ce paramètre
local texteMois = mois -- texte du mois qui sera affiché (éventuellement l'abréviation)
if trim( args.compact ) then
texteMois = listeMois[ mois ].abrev
end
mois = mois and mois:gsub( 'aout', 'août' )
local dataQualificatif, dataCat
Ligne 561 ⟶ 574 :
if jjour == 1 then
jjour = '<abbr class="abbr" title="premier">1<sup>er</sup></abbr>'
if trim( args.compact ) then
jmois = listeMois[ jmois ].abrev
end
if jannee ~= annee then
Ligne 590 ⟶ 606 :
-- s'il n'y a pas de lien sur le mois, il sera affiché avec le jour.
wikiListe.insert( wikiLien( lien, jour ) )
wikiListe.insert( wikiLien( lien, jour .. ' '..
end
iso.insert( 1, string.sub( '0' .. gjour, -2 ) )
Ligne 598 ⟶ 614 :
if mois then
if #wikiListe == 0 and annee == nil then
return
end
if args.nolinks then
if not args.masquerMois then
wikiListe.insert(
end
else
Ligne 617 ⟶ 633 :
wikiListe.remove()
if not args.masquerMois then
wikiListe.insert( wikiLien( lien,
end
elseif #wikiListe > 0 then
Ligne 624 ⟶ 640 :
elseif args.masquerAnnee then
-- s'il n'y a pas de jour et que l'année n'est pas affichée, on insère le mois seul.
wikiListe.insert(
end
end
Ligne 657 ⟶ 673 :
if mois and #wikiListe == 0 then
-- si le mois n'a pas de lien et n'est pas affiché avec le jour, il est affiché avec l'année.
texteAnnee =
end
wikiListe.insert( wikiLien( lien, texteAnnee ) )
Ligne 871 ⟶ 887 :
end
jour = tonumber( jour )
if jour and jour <=
jour = '-' .. string.sub( '0' .. jour, -2 )
return annee .. mois .. jour
Ligne 1 187 ⟶ 1 203 :
sep = ' • '
for j = 1, 12 do
month = ucfirst(
if j == 12 then sep = ''
end
|