Я полагаю, он спрашивает, хранятся ли ваши даты в различных предикатах или они указаны только в одном предикате даты, например, 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")