2009-05-18 1 views
18

Gibt es dafür eine integrierte Unterstützung? Und wenn nicht, gibt es einen Konsens darüber, mit solchen Daten umzugehen?Was ist der (beste) Weg, um Daten vor Christus in C# /. NET zu behandeln?


Links zu eigenen Codelösungen oder Fragmenten davon sind sehr willkommen.

+0

Nur neugierig - warum? Sie schauen sich mindestens zwei verschiedene Kalender an - Julian in 40 - etwas BC und Gregorian 1580 - etwas mit anderen # Tagen/Monaten, Jahren usw. Klingt wie ein Albtraum. – n8wrl

+0

Ich möchte eine Zeitleisten-Software umschreiben, die ich als Kind begonnen habe (Turbo Pascal). Es war nur Jahre her, keine vollen Daten. – Peter

+1

Sind sogar Jahre genau, ohne Bezug auf die Kalender? Ist die Zeitverschiebung nicht länger als 1,0 Jahre? –

Antwort

9

Es gibt keine integrierte Unterstützung für Daten in diesem Bereich, so dass Sie Ihre eigenen codieren müssen.

Hier ist ein Beispiel http://flipbit.co.uk/2009/03/representing-large-ad-and-bc-dates-in-c.html.

+1

Ich werde meinen eigenen Code schreiben, ich habe Angst. schau einfach hier vorbei, um zu sehen, dass ich auf etw. nicht verpasse. bereitwillig anwesend. – Peter

+0

Tx für den Code-Ort auch, aber ich fürchte, es ist nicht meine Bedürfnisse. Andere Links sind sehr willkommen. – Peter

+0

@BoltClock: Immer in der Nähe p – leppie

4

Wenn Sie die Behandlung von DateTime Werte < DateTime.MinValue beziehen, dann denke ich, dass der einzige "Konsens" ist, System.DateTime nicht zu verwenden, um zu versuchen, sie darzustellen.

Jeder Konsens würde wahrscheinlich nur innerhalb einer Gemeinschaft existieren, die mit solchen Daten arbeitet. In welchem ​​Bereich arbeiten Sie? Astronomie?


Egal welches Gebiet von Interesse, es gibt wahrscheinlich andere, die das gleiche Problem erfahren haben. Ich würde zuerst etwas recherchieren, besonders wenn Ihre Daten jemals mit anderer Software in diesem Interessengebiet zusammenarbeiten müssen. Selbst wenn Sie Ihre eigenen Code schreiben müssen, können Sie zumindest auf die Probleme aufmerksam werden, die andere bei der Codierung ihrer eigenen hatten.

+0

Nein, nicht Astronomie. Eher Geschichte. – Peter

+0

Ich habe keine Geschichte vermutet; Du hast nicht "BCE" gesagt. –

+1

Oder verwenden Sie sie nur relativ zu einer Epoche, die Sie extern definieren. –

1

Ich weiß, dass diese Frage alt ist, aber ich fand es in einer Suche und kann zusätzliche Einblicke zu diesem Thema hinzufügen. In den obigen Kommentaren postulierte jemand, dass der Datumsunterschied größer als 1 Jahr sein würde. Wenn man nicht plant, zu einer Zeit zurückzugehen, lange bevor genaue Daten nützlich abgeleitet werden können (viele Tausende von Jahren), ist das nicht der Fall. Die für beide Julianische Daten benötigte Differenz & Gregorianische Daten sind nur eine kleine Anzahl von Tagen, sicherlich weniger als 3 Wochen für irgendein spezifisches Datum, das vernünftigerweise versucht werden könnte, aus vorhandenen historischen Aufzeichnungen abzuleiten. Zu diesem Zweck gibt es Umrechnungstabellen. Ich glaube, das größere Problem kommt von der Umstellung auf den Gregorianischen Kalender.

Verschiedene Länder konvertierten zu unterschiedlichen Zeiten und sie verloren eine unterschiedliche Anzahl von Tagen, wenn sie konvertierten, weil sie nicht gleichzeitig konvertierten. Um ein Beispiel zu geben, wie die Konvertierung stattgefunden hat, stellen Sie sich heute den 1. Oktober und morgen den 10. Oktober vor. In diesem Szenario würde die Konvertierung zu einem Verlust von 9 Tagen in diesem bestimmten Land führen. Ein anderes Land, das einige Zeit später konvertiert ist, hat vielleicht 11 Tage oder 12 Tage oder 13 Tage usw. verloren. Ein anderes großes Problem wäre der Versuch, die Jahreszeit an einem bestimmten Datum abzuleiten. Die Präzession der Tagundnachtgleichen führte aufgrund ungenauer Kalendarien zu einem etwas raschen Anstieg der Jahreszeiten im Laufe des Kalenderjahres. Heute haben wir den Sommer in der nördlichen Hemisphäre im Juli. Vor 3000 Jahren konnte dieser Kalendermonat mitten im Winter auftreten, wenn wir den Julianischen Kalender als Standard verwenden.

Es ist auch wichtig zu beachten, dass eine Vielzahl alter Kalendersysteme in der Antike verwendet wurden. Es existierten sowohl Sonnen- als auch Mondsorten, und bis vor etwa 2000 Jahren (als der Julianische Kalender erfunden wurde) gab es keinen realistisch wirksamen Standardisierungsversuch. Die Leute versuchen häufig julianische Daten weit zurück in die Geschichte zu projizieren, aber diese Bemühungen sind anachronistisch. Aufgrund der Unsicherheit, die durch inkonsistente Datensätze verursacht wird, ist es nicht möglich, ein bestimmtes Ereignis zu bestimmen, das an einem bestimmten Datum auftritt, das mit dem julianischen Kalender korreliert ist, außer in einer Rundum-Weise, die eine ziemlich große Fehlerspanne beinhaltet. Für ein Ereignis, das vor dem ersten Jahrtausend vor Christus stattfand, kann diese Fehlerspanne 50 oder 100 Jahre (oder mehr in bestimmten Zeiträumen) betragen. Wir haben einfach nicht die Aufzeichnungen, um eine extrem genaue Zeitleiste zu erstellen.Kohlenstoffdaten aus Baumringfolgen, die mit vorhandenen Aufzeichnungen korrelieren, haben dazu beigetragen, die Fehlermarge in verschiedenen Regionen und Zeiträumen zu verringern, aber sie bilden keine vollständig zusammenhängende Aufzeichnung, und wir werden immer eine Fehlermarge haben.