сравнивая даты AC и BC - PullRequest
       27

сравнивая даты AC и BC

1 голос
/ 25 ноября 2010

У меня есть реализация пролога, которая позволяет мне сравнивать моменты времени в событиях, используя основанное на прологе представление 13 отношений Аллена.Каждое событие имеет начальную точку (ГГГГ-ММ-ДД) и конечную точку (ГГГГ-ММ-ДД), и я могу проверить, происходили ли два события одновременно или одно раньше другого и т. Д., Вплоть до детализации дня (например1555-12-03 до 1555-12-04).Это работает хорошо с так называемыми датами AC (Anno Domini), но теперь у меня есть много событий, которые произошли до нашей эры (до Рождества Христова).Как лучше всего справиться с этими событиями до нашей эры и, например, иметь возможность сказать, что основание Афин (1556 г. до н.э.) - до рождения Колумба (1451 г.) ..... Любая идея более чем приветствуется.

Спасибо,

I.

Ответы [ 2 ]

1 голос
/ 25 ноября 2010

Я полагаю, он спрашивает, хранятся ли ваши даты в различных предикатах или они указаны только в одном предикате даты, например, a_date (12345, "12-24-2011"), где первое поле является полем идентификатора,То есть, вы храните даты как что-то вроде

a_date (event_id, date_value)

, где формат date_value - YYYY-MM-DD?

Одно из решений: требовать «AD» или «BC» в строке даты, по умолчанию «BC» и рассматривать отсутствие любого из них как «AD».

Другое решение: создайте новый предикат даты, назовите его

a_date (even_id, date_value, flag)

где flag - это bc или ad.Если флаг - реклама, математика продолжается как обычно.Если флаг - bc, переходите к новому коду, который выполняет соответствующую математику.Существующие предикаты даты в форме a_date (event_id, date_value) будут интерпретированы как a_date (event_id, date_value, "AD")

То есть в коде

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

0 голосов
/ 25 ноября 2010

Как вы храните свою дату? Если это в вашей собственной структуре, включите AD или BC и используйте это как своего рода отрицательный флаг, BC рассматривает годы как отрицательные, AD рассматривает годы как положительные.

...