题
我有一个序言实现,使我可以使用13个艾伦关系的基于序言的表示,比较事件中的时间点。每个事件都有一个起点(yyyy-mm-dd)和一个终点(yyyy-mm-dd),我可以检查两个事件是在同一时间发生还是在另一个事件之前,等到一天粒度之前(例如1555-12-03在1555-12-04之前)。它确实可以与所谓的AC日期(Anno Domini)一起使用,但是现在我有很多事件发生在BC(基督之前)。处理这些卑诗省活动的最佳方法,例如,雅典的基础(BC 1556)是在哥伦布(Colombus)诞生之前(1451).....任何想法都非常受欢迎。
谢谢,
一世。
解决方案
您如何存储约会?如果它位于您自己的结构中,则包括广告或卑诗省,并将其用作一个负面的旗帜,卑诗省将数年视为负面,广告将年视为正面。
其他提示
我相信他在问您的日期是否存储在各种谓词中,还是仅在单个日期谓词中指定,例如,a_date(12345,“ 12-24-2011”),其中第一个字段是ID字段。也就是说,您是否将日期存储为类似
a_date(event_id,date_value)
date_value的格式在哪里是yyyy-mm-dd?
一种解决方案:在日期字符串中需要“ AD”或“ BC”,默认值为“ BC”,并将其视为“ AD”。
另一个解决方案:创建一个新的日期谓词,调用
a_date(even_id,date_value,flag)
标志是卑诗省或广告。如果标志是广告,数学会像往常一样继续。如果标志是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”)