[MFC] Date antérieure à 1752
Bonjour a tous,
Voila deux heures que je cherche comment avoir un controle (style CDateTimeCtrl) qui me permette de rentrer des dates antérieures à 1752.
Peu m'importe si je n'ai pas de calendrier, tout ce que je veux c'est une zone où je peux entrer une date.
Merci pour toutes les pistes.
Re: [MFC] Date antérieure à 1752
Citation:
Envoyé par Nicolas Bauland
Bonjour a tous,
Voila deux heures que je cherche comment avoir un controle (style CDateTimeCtrl) qui me permette de rentrer des dates antérieures à 1752.
Peu m'importe si je n'ai pas de calendrier, tout ce que je veux c'est une zone où je peux entrer une date.
Merci pour toutes les pistes.
Attention pour les dates anciennes.
tu t'approche du changement de calendrier julien/gregorien.
en effet, une date en apparence valide comme le 10 oct 1582 n'a jamais existé (on est passé du 5 oct au 15 oct. si si)
ensuite faut savoir si tu veux gerer le calendrier gregorien "proléptique" ..
Bref, quand on descent trop bas dans les dates on a des problemes, la seule vrai solution fiable est de convertir les date en JD (jour julien) qui est simplement un nombre (réel) voir même un MJD (modified julian day) qui peut se traiter avec un entier(long).. ca permet de ne pas se poser de problemes pour les années bixestilles aussi, et les calculs sont simple, une bête soustraction donne le nombre de jours entre 2 dates.
Attention, la pluparts des algo de conv date (en JD/MJD) que l'on trouve sur internet sont faux (ne descendent pas en dessous de l'an 1 ) si qqun est interressé, faites moi signe, j'ai passé des jour a les tester :)
Il existe des algo de conversion du calendrier julien/gregorien/julien-proleptique/gregorien-proleptique de/vers JD/JMD
et tout un tas d'algo du JD/JMD vers plein de truc tel que (le nombre de semaine dans l'année, le jour de la semaine, savoir si l'année est bisextile.. etc...) en fait le JD est la base de calcul universelle des dates.