Frage

Ich habe eine Prologs Implementierung, die mir den Zeitpunkten der Ereignisse mit einem Prolog-basierte Darstellung der 13 Allens Beziehungen zu vergleichen. Jedes Ereignis hat einen Startpunkt (YYYY-MM-DD) und einen Endpunkt (YYYY-MM-DD) und ich kann überprüfen, ob zwei Ereignisse zur gleichen Zeit geschehen ist, oder man ist, bevor ein anderer, etc an dem Tag Granularität bis (zB 1555.12.03 ist vor 1555.12.04). Es funktioniert ok mit so AC Daten (Anno Domini) genannt, aber jetzt eine ganze Reihe von Veranstaltungen Ich habe die BC passiert ist (vor Christus). Was für einen bester Weg ist es, die BC Ereignisse und in der Lage zu sagen, zum Beispiel, dass die Gründung von Athen (BC 1556) ist vor der Geburt von Colombus (1451) ..... Jede Idee ist mehr als willkommen zu behandeln.

Danke,

ich.

War es hilfreich?

Lösung

Wie Speichern Sie Ihr Datum? Wenn es in Ihrer eigenen Struktur ist enthält dann den AD oder BC, und verwenden Sie diese als eine Art Negativ-Flag, BC Behandlung von Jahren als negativ, AD Behandlung von Jahren als positiv.

Andere Tipps

Ich glaube, er fragt, ob Ihre Reisedaten in verschiedenen Prädikaten gespeichert sind oder wenn sie nur in einem einzigen Zeitpunkt Prädikat angegeben sind, zum Beispiel a_date (12345, „2011.12.24“), wobei das erste Feld ein ID-Feld ist . Das heißt, tun Sie speichern Daten als so etwas wie

a_date (event_id, date_value)

Dabei gilt date_value das Format YYYY-MM-DD ist?

Eine Lösung: require „AD“ oder „BC“ in der Datumszeichenfolge, mit dem Standard „BC“ zu sein, und die Behandlung die Abwesenheit von entweder als „AD“ zu sein.

Eine andere Lösung: Erstellen Sie ein neues Datum Prädikat, nennen es

a_date (even_id, date_value, Merker)

Dabei gilt Flagge entweder bc oder aufgeben. Wenn Flag Anzeige ist, geht Mathe wie gewohnt auf. Wenn Flag bc, Zweig zu neuen Code, der die entsprechende Mathematik tut. Bestehende Datum Prädikate der Form a_date (event_id, date_value) würde als interpretiert werden a_date (event_id, date_value, "AD")

Das heißt, im Code

a_date (event_id, date_value): = a_date (event_id, date_value, "AD")

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top