alors déjà j'ai eu du mal à comprendre les premières explications, et encore je suis pas sûr, mais là c'est trop excelien pour moi!
(…)
Ne cherchez pas à
comprendre, car on n'est plus dans le domaine du rationnel, mais dans le domaine d'
Excel. On
constate que :
Du premier janvier 1900 au 28 février 1900, les jours sont comptés en prenant le premier janvier 1900 pour jour 1. Le 28 février 1900 est le jour 59.
À partir du premier mars 1900, les jours sont comptés en prenant le 31 décembre 1899 pour jour 1. Le premier mars 1900 est ainsi le jour 61.
Dans ce système bizarre, il n'y a pas de jour 60. Pour boucher le trou, le
Bill's band a inventé un jour qui n'a jamais existé dans le calendrier grégorien : le 29 février 1900.
C'est comme ça. On n'y peut rien.
En réalité, c'est même pire que ça, car cette idée géniale est complétée par une autre idée géniale : le
lundi premier janvier 1900 du calendrier grégorien est le
dimanche premier janvier 1900 dans le calendrier du
Bill's band. On continue ainsi jusqu'au
mercredi 28 février 1900 (grégorien) baptisé
mardi 28 février 1900.
Le 29 février 1900 qui n'a pas existé dans le calendrier grégorien trouve place dans le calendrier du Bill's band sous le nom de mercredi 29 février 1900.
Le premier mars 1900,
jeudi dans le calendrier grégorien s'appelle… …
jeudi dans le système du Bill's band.!
C'est comme ça. On n'y peut rien.
Par chance, la coïncidence entre les deux systèmes semble continuer les jours suivants.
Par conséquent :
- La fonction =JOURSEM(Date;2) renvoie le rang de Date dans la semaine (lundi = 1, … , dimanche = 7) si Date est postérieure au 28 février 1900. Pour Date allant du 1/1/1900 au 28/2/1900 inclus, la formule est fausse. Pour la rendre constamment juste, il faut écrire =JOURSEM(Date+(Date+0<61);2).
- Il ne faut pas utiliser un format d'affichage de date commençant par "jjj " pour les dates antérieures au premier mars 1900 (car le nom du jour serait erroné).
- Pour connaître le rang d'une date jj/mm/aaaaa en prenant le premier janvier 1900 comme jour 1, il faut prendre =DATE(aaaa;mm;jj) du 1/1/1900 au 28/2/1900, et =DATE(aaaa;mm;jj)-1 dans les autres cas. (On obtiendra ainsi 60 pour le 1/03/1900.)
C'est comme ça. On n'y peut rien.