Discussion Modèle:PREVIOUSWEEK

Un article de Wikipédia, l'encyclopédie libre.

[modifier] Algo utilisé

L'algo est validé, mais surveiller la syntaxe aux prochains changements d'années... (normalement, c'est supposer bien fontionner)

Le calcul ne pose aucune problème sauf en semaine 1 : il faut alors calculer si l'année précédente avait 52 ou 53 semaines.

Méthode :

  • une année a 53 semaines si son jour de l'an est un jeudi (un mercredi ou un jeudi si bissextile)
  • donc si son 31 décembre est aussi un jeudi (un jeudi ou un vendredi si bissextile)

Si on est en semaine 1 :

  • Il faut calculer le nombre de jours d'écarts entre aujourd'hui et le plus proche 31 décembre
    • si on est en janvier alors le 31 décembre de l'année précédente était CURRENTDAY jours plus tôt qu'aujourd'hui
    • si on est encore en décembre (la semaine 1 peut empièter sur l'année précédente un 29, 30 ou 31 décembre), alors le 31 décembre tombera 17-31 jours plus tôt (donc plus tard puisque négatif) qu'aujourd'hui
  • il suffit d'ajouter CURRENTDOWISO pour savoir (modulo 7) quel jour tombait ce 31 décembre
  • le résultat variera de -9 à 9 dans les cas extrêmes (1= lundi 7=dimanche cycle de 7 jours)
  • on utilise CURRENTDOWISO plutôt que CURRENTDOW pour être certain de la correspondance des jours sous tous les Wiki. (lundi = 1, toujours)

Avec ce modulo :

  • le 31 déc était un jeudi si on obtient -3 ou +4 (toujours 53 semaines)
  • c'était un vendredi pour -2 ou +5 (53 semaines SI année bissextile, 52 sinon). Remarques :
    • si on est en décembre il faut regarder le caractère bissextile de l'année courante
    • si on est en janvier il faut regarder le caractère bissextile de l'année précédente
  • dans tous les autres cas, il y avait 52 semaines.

Algo mis au point pour Wikipédia / David • 13 juin 2006 à 04:50 (CEST) Lire aussi mon article sur la numérotation des semaines pour mieux comprendre.