4 Stimmen

Wie sollte ich alte Daten in SharePoint speichern?

Ich muss in SharePoint Daten speichern, die bis etwa 5000 v. Chr. zurückreichen. Idealerweise würde ich gerne in der Lage sein, Datum Addition/Subtraktion, wie diese zu tun:

oldDate = '5000 BC';
newDate = '1995 AD';
DateDiff(oldDate, newDate, 'Years'); // equals 6995

Wie sollte ich vorgehen? Erstellen Sie eine old_date Klasse basierend auf Strings? Einfach ein normales Datum verwenden, aber ein AD oder BC hinzufügen, das das Datum negativ macht?

5voto

T.E.D. Punkte 42630

Das ist ein nicht ganz triviales Problem und hängt davon ab, was genau Sie mit diesen Daten machen wollen. Zum Beispiel verwenden wir den aktuellen (gregorianischen) Kalender erst seit 1582. Davor war es der julianische Kalender, und davor ein alter römischer Kalender. Und was noch schlimmer ist: Diese Informationen gelten nur für Westeuropa (und kulturell verwandte Gebiete). Wenn Sie also hoffen, mit ein paar einfachen Berechnungen die korrekten Daten für historische Ereignisse zu erhalten, werden Sie eine große Enttäuschung erleben.

Wenn Sie nur die Gregorianischer Kalender rückwärts, ich denke, das ist machbar. Allerdings gibt es immer noch Fehler, und in diesem Ausmaß sind sie von Bedeutung. Aus Wikipedia:

Auf Zeitskalen von Tausenden von Jahren, hinkt der Gregorianische Kalender den Jahreszeiten, weil die Verlangsamung der der Erdrotation jeden Tag etwas länger wird (siehe Gezeiten Beschleunigung und Schaltsekunde), während das Jahr eine gleichmäßigere Dauer

2voto

eXXL Punkte 5928

Wenn Sie nur an Jahren und nicht an Tagen interessiert sind, können Sie ein benutzerdefiniertes Feld mit einem benutzerdefinierten Editor erstellen und den Jahreswert als Ganzzahlwert speichern.

Werte kleiner als Null bedeuten BC und Werte größer oder gleich Null bedeuten AD.

0voto

Nathan DeWitt Punkte 6391

Am Ende habe ich die Daten als Textfeld im ISO 8601-Format gespeichert:
YYYY-MM-DDThh:mm:ss.sTZD

Sie müssen nicht die gesamte Zeichenkette speichern, wenn Sie z. B. 5000 v. Chr. speichern wollten, würden Sie Folgendes eingeben -5000-01-01 . Ich bekomme meine Datumsaddition und -subtraktion nicht so leicht hin, aber es war viel einfacher, die Daten in dem von mir gewünschten Format zu erhalten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X