2013-04-10 6 views
14

Gibt es eine Bibliothek, um mit historischen (großen) Daten zu arbeiten (zB 11.043 v. Chr.)? Erhalten Jahrhundert, Jahrtausend?Bibliothek mit historischen (großen) Daten und Zeit (z. B. 11.043 v. Chr.) Arbeiten?

+6

Ich bin neugierig: Woran arbeiten Sie gerade? –

+0

@JayRiggs Spiele. – manking

+0

Welche Bibliotheksfunktionen benötigen Sie? Standard wie AddDays(), DateDiff() und formatiert ToString()? Welche Präzision brauchen Sie - Tage, Sekunden, Millisekunden? Interessieren Sie sich für Namen von Wochentagen? Wenn alles, was Sie wollen, Jahrhundert oder Jahrtausend ist, teilen Sie es durch 100 oder 1000 und seien Sie damit fertig, wenn Sie mehr wollen, dann überlegen Sie, was es ist, denn wenn es etwas sehr Spezifisches ist, sind Sie wahrscheinlich besser dran, es selbst zu tun. –

Antwort

2

Für Daten und Zeiten im Allgemeinen gibt es die Standardzeitklassen von C++ 11, und die Glib-Bibliothek bietet die GDateTime-Klasse mit einer C++ - Bindung Glib :: DateTime in glibmm. Vielleicht haben die Boost-Bibliotheken auch eine ähnliche Schnittstelle.

Wenn Sie historische Daten wie Dinosaurier brauchen, können Sie Ihre eigene einfache Klasse schreiben (außer eine der Optionen, die ich erwähnt habe, ist gut genug, in diesem Fall ist die Berechnung des Jahrhunderts oder Jahrtausends sehr einfach).

Edit: Die meisten Implementierungen repräsentieren Zeit als die Anzahl der Sekunden oder Mikrosekunden in Unix-Zeit, dh seit 1970, was bedeutet, dass sogar eine 64-Bit-Integer nicht in der Lage sein kann, uralte Zeiten darzustellen (Sie können versuchen zu berechnen oder Web-Suche oder Wikipedia über diese Grenzen lesen).

In diesem Fall kann eine nette Lösung sein, eine separate AncientTime-Klasse zu verwenden, die nur ein Jahr hat, und alles, was Sie brauchen, wie Monat/Tag/Stunde kann mit einer einfachen Standard-DateTime-Klasse, in der Sie kann das Jahr ignorieren oder durch einen dünnen Wrapper auf 0 normalisieren.

Verwandte Themen