2009-05-18 7 views
18

Y a-t-il un support intégré pour cela? Et sinon, y a-t-il un consensus sur le traitement de ces dates?Quelle est la (meilleure) façon de gérer les dates avant le Christ en C# /. NET?


Les liens vers des solutions codées, ou des fragments de celles-ci, sont les bienvenus.

+0

Juste curieux - pourquoi? Vous regardez au moins deux calendriers différents - Julian dans 40-quelque chose en Colombie-Britannique et Gregorian 1580-quelque chose avec différents # jours/mois, années, etc .. Cela ressemble à un cauchemar. – n8wrl

+0

Je veux réécrire un logiciel de chronologie que j'ai commencé quand j'étais gamin (turbo pascal). C'était juste des années, pas des dates complètes. – Peter

+1

Les années paires sont-elles précises, sans référence aux calendriers? Le décalage temporel n'est-il pas supérieur à 1,0 an? –

Répondre

9

Il n'y a pas de support intégré pour les dates dans cette gamme, vous devrez donc coder les vôtres.

Voici un exemple http://flipbit.co.uk/2009/03/representing-large-ad-and-bc-dates-in-c.html.

+1

Je vais coder mon propre, j'ai peur. juste checkin ici pour voir que je ne manque pas sur sth. facilement présent. – Peter

+0

tx pour l'emplacement du code aussi, mais je crains que cela ne convient pas à mes besoins. D'autres liens sont les bienvenus. – Peter

+0

@BoltClock: toujours à portée de main; p – leppie

4

Si vous faites référence à la gestion des valeurs DateTime < DateTime.MinValue, alors je pense que le seul "consensus" est de ne pas utiliser System.DateTime pour essayer de les représenter.

Un consensus existerait probablement seulement dans une communauté qui travaille avec de telles dates. Quel est le domaine dans lequel vous travaillez? Astronomie?


Quelle que soit la zone d'intérêt, il est probable que d'autres qui ont connu ce même problème. Je ferais d'abord des recherches, surtout si vos dates auront besoin d'interopérer avec d'autres logiciels dans ce même domaine d'intérêt. Même si vous devez coder votre propre, vous pouvez au moins prendre conscience des problèmes que d'autres ont eu en codant leur propre.

+0

Non, pas d'astronomie. Plutôt l'histoire. – Peter

+0

N'a pas suspecté l'histoire; vous n'avez pas dit "BCE". –

+1

Ou utilisez-les simplement par rapport à une époque que vous définissez en externe. –

1

Je sais que cette question est ancienne, mais je l'ai trouvé dans une recherche et peut ajouter des informations supplémentaires à ce sujet. Dans les commentaires ci-dessus, quelqu'un a postulé que la différence de date serait supérieure à 1 an. À moins que l'on ait l'intention de remonter à une époque bien avant que les dates exactes puissent être utilement dérivées (plusieurs milliers d'années), ce n'est pas le cas. Le différentiel nécessaire pour les deux dates juliennes & Les dates grégoriennes sont seulement un petit nombre de jours, certainement moins de 3 semaines pour toute date spécifique que l'on pourrait raisonnablement tenter de dériver des enregistrements historiques existants. Il existe des tables de conversion à cet effet. Je crois que le plus grand problème vient de la conversion au calendrier grégorien.

Différents pays ont été convertis à des moments différents et ils ont perdu des nombres de jours différents lorsqu'ils se sont convertis car ils ne se sont pas convertis en même temps. Pour un exemple de la façon dont la conversion s'est produite, imaginez aujourd'hui le 1er octobre et demain sera le 10 octobre. Dans ce scénario, la conversion entraînerait une perte de neuf jours dans ce pays en particulier. Un autre pays qui a converti quelque temps plus tard peut avoir perdu 11 jours, ou 12 jours, ou 13 jours, etc. Un autre gros problème serait de tenter de dériver la saison à une date particulière. En raison de calendriers inexacts, la précession des équinoxes a entraîné une progression assez rapide des saisons au cours de l'année civile au fil du temps. Aujourd'hui nous avons l'été dans l'hémisphère nord pendant le mois de juillet. Il y a 3000 ans, ce mois de calendrier peut avoir eu lieu au milieu de l'hiver si nous utilisons le calendrier julien comme standard.

Il est également important de noter qu'une grande variété de systèmes de calendrier anciens ont été utilisés dans le monde antique. Il existait à la fois des variétés solaires et lunaires et il n'y avait pas de tentative réaliste de standardisation jusqu'à il y a environ 2000 ans (quand le calendrier julien a été inventé). Les gens essaient souvent de projeter des dates juliennes beaucoup plus loin dans l'histoire, mais ces efforts sont anachroniques. En raison de l'incertitude causée par les enregistrements incohérents, il n'est pas possible de déterminer qu'un événement particulier s'est produit à une date spécifique corrélée avec le calendrier julien, sauf de façon indirecte, ce qui implique une marge d'erreur plutôt importante. Pour un événement survenu avant le premier millénaire avant JC, cette marge d'erreur peut être de 50 ou 100 ans (ou plus dans certaines périodes). Nous n'avons tout simplement pas les dossiers pour établir un échéancier extrêmement précis.Les dates de carbone dérivées des séquences d'anneaux de croissance corrélées avec les enregistrements existants ont contribué à réduire la marge d'erreur dans diverses régions et périodes, mais elles ne constituent pas un enregistrement complètement connecté et nous aurons toujours une marge d'erreur à traiter.

Questions connexes