Particularités d'Excel (au moins la version 5, qui est assez ancienne mais qui est la seule que je pratique habituellement)
La partie entière est donc le nombre de jours entre la date considérée et cette date-origine. Si l'on veut faire des calculs avec des dates du passé, il faut savoir qu'Excel ne permet pas d'entrer des dates antérieures (pas de nombre négatif), et qu'il ne peut aller dans le futur que jusqu'à 2078. Il faudra tenir compte de ceci si vous voulez faire des mesures jusqu'au XXIIe siècle...
Particularité de QuattroPro (version 5)
Par contre, QuattroPro pour Windows permet d'entrer des valeurs négatives, jusqu'à -109571, ce qui correspond au premier janvier 1600.
Pourquoi 1600 ? Peut-être parce que jusqu'en 1582, on utilisait le calendrier julien, qui comportait des années de 365 jours, sauf une année sur quatre (année bissextile) de 366 jours. Le calendrier actuel (calendrier grégorien) a été publié en 1582, et n'est entré en vigueur que progressivement dans les différents pays européens. Il prévoit que les années séculaires (celles dont le millésime se termine par deux zéros) ne sont pas bissextiles, sauf lorsque le nombre de siècles est divisible par quatre. Par exemple, 1700, 1800, 1900 n'ont pas été bissextiles, 2000 le sera, mais non 2100 ni 2200...
Donc les calculs internes de date d'Excel sont simples, puisque dans l'étendue de temps considérée, il y a régulièrement une année sur quatre qui est bissextile. Pour avoir une plus grande étendue, QPW doit avoir des calculs plus complexes, mais qui deviennent inutiles avant 1583, puisque les règles du calendrier étaient différentes.
Pour le futur, QuattroPro est très optimiste : on peut faire des calculs jusqu'au 31 décembre 3199 (474816) ; il n'est pas certain que le calendrier grégorien dure si longtemps, mais il est sûr que les ordinateurs actuels seront en panne depuis belle lurette dans mille deux cents ans !
Pour faire la conversion en heures (h), minutes (m) et secondes (s), on peut utiliser les relations suivantes :
h:=n div 3600
m:=(n - h*3600) div 60
s:=n - (h*3600) - m*60
et pour la valeur 0.69791666666, on doit obtenir 16 heures, 45 minutes,
0 secondes.
Pour l'opération inverse, on peut appliquer :
x:=(h*3600 + m*60 + s)/86400
Il est donc très facile de faire des sommes et des différences.