Hallo Johannes,
danke für deine Antwort!
Zusammengefasst willst du folgende Daten zu einem Datum speichern:
* Kalender (Julianisch, Gregorianisch, Chinesisch, Hebräisch, Islamisch, Maya, whatever)
* Genauigkeit des Datums (vor, nach, ca., genau, evtl. auch zwischen)
* Das Datum an sich (Tag, Monat, Jahr, Ära)
Ja, darauf wird es wohl hinauslaufen. Weniger eher nicht, denn regulär Fallback-Werte anzunehmen, läuft darauf hinaus, dass die Wartung/Ergebnis-Interpretation erschwert werden kann.
Die entsprechende Benutzereingabe würde ich so realisieren:
- Die Angabe des Kalenders würde ich über ein Auswahlfeld machen, da das Programm mit Daten aus ihm unbekannten Kalendern wohl kaum rechnen kann ;-)
- Auch für die Genauigkeit bietet sich natürlich eine Auswahlliste oder Checkboxen an.
- Das ist das schwierige, da diese Angabe sehr vom verwendeten Kalender abhängt. Ära wäre beim Chinesischen oder Japanischen Kalender die Äranamen der Kaiser, beim Julianischen bzw. Gregorianischen Kalender v.Chr. oder n.Chr. und bei den Maya ist das Ganze wieder komplett anders.
Ja, dem stimme ich soweit auch zu.
Eine Möglichkeit zur Lösung des Problems wäre die Umrechnung aller Daten in einen gemeinsamen Kalender vor der Speicherung. Das wirft aber auch Probleme auf, wenn z.B. nur das Jahr im Islamischen Kalender bekannt ist. Wegen des unterschiedlichen Jahrensbeginns würde ein z.B. in den Gregorianischen Kalender umgerechnetes Datum vom der ursprünglichen Angabe abweichen.
Ja, das wäre dann der gleiche Effekt, wie ich es Ingo eben schrieb, schade eigentlich ... aber auch logisch. Unvollständige Daten erzeugen eben nicht 100% richtige Daten. Aber dann sollte man das auch direkt sehen können. Eine reine Jahresangabe ist in Ordnung, aber sobald detailiertere Daten angegeben sind, impliziert das auch eine gewisse Korrektheit und keine Schätzungen ... und ein "ca. 01.05.0008" sieht für mich komisch aus ... zumal bei den umgerechneten Werten ja die Quelldaten nicht mehr verfügbar wären.
Man könnte zwar auch das Datum als String in einem Kalenderspezifischen Format abspeichern, aber wie du selbst schon gesagt hast, wird dann das Rechnen und Abfragen der Daten sehr kompliziert.
Ja, leider. Sonst wäre das nämlich recht "schön".
Ich fürchte, dass es dafür kein Patentrezept gibt und du dir einen Kompromiss suchen musst, der bei deiner spezifischen Anwendung am wenigsten Probleme bereitet. Tut mir leid, wenn ich dir nicht helfen konnte.
Ach was, es hilft auch, wenn jemand mich darin bestätigt, dass gewisse Dinge so ohne weiteres nicht funktionieren. Die Lösung soll ja möglichst korrekt und robust werden ;-)
MfG
Erik