3.2.2 计时系统

3.2.2 计时系统

计时系统S由三部分构成:(1)一种语言L;语言L包括时间单位集合、操作集合以及函数集合;(2)关于历法时间段和时间点的公理;(3)时间实体以及表示这些实体的术语。

计时系统S的语言L是三元组(U,O,F),其中,

(1)U表示时间点和时间段的时间单位集合。

(2)O表示操作集合。first(r)表示字符串r的第一个符号,last(r)表示字符串r的最后一个符号。

(3)F表示函数集合。durationFn(T,u)表示时间段T内采用时间单位u度量的时间数量。

例如,公历计时系统中的单位集合U如下所示:

U={(世纪)、(十年)、(年)、(月)、(周)、(日)、(小时)、(分钟)、(秒)}。

在下文中,本节将给出关于公历计时系统中日历时间段和时间点的公理。

(1)谓词solar-year(x)表示,x是类别公历年(Solar Year)的实例。例如,solar-year(公元2022年)表示公元2022年是公历年。

(2)谓词month(x,m)表示x是类别月份(the mth Month)的实例。例如,month(x,8)表示x是8月份的实例,即x表示是某年的8月份。

(3)函数successorFn(x,u)表示以时间单位u表示,x的后继。例如,y=successorFn(公元2022年,year),则y为公元2022年。

(a)solar-year(x)→(startFn(x)=t4)∧(endFn(x)=t5)∧((durationFn(x,day)=365)⊕(durationFn(x,day)=366))。公理a)表示对于公历年实例x,其开始时间点为=t4,结束时间点为=t5,公历年实例x的天数为365或366。t4是太阳返回春分的公历日0:00的时间点,t5是太阳下一次返回春分的公历日之前的公历日24:00的时间点,“⊕”是逻辑运算符异或(Exclusive or)。

(b)month(x,1)→∀y(solar-year(y)∧inside(x,y)→startFn(x)=startFn(y))。公理b)表示对于1月份实例x,公历年实例y,若x在y内部,则x和y的开始时间点是相同的。

(c)month(x,12)→∀y(solar-year(y)∧inside(y,x)→endFn(x)=endFn(y))。公理c)表示对于12月份实例x,公历年实例y,若x在y内部,则x和y的结束时间点是相同的。

(d)month(x,m)∧(y=successorFn(x,month))→∀z(solar-year(z)∧inside(x,z)∧inside(y,z)→endFn(x)=startFn(y))。该公理表示对于m月份实例x,y是x的后继,公历年实例z,若x在z内部,y在z内部,则x的结束时间点等于y的开始时间点。

(e)month(x,1)∨month(x,3)∨month(x,5)∨month(x,7)∨month(x,8)∨month(x,10)∨month(x,12)→durationFn(x,day)=31。

(f)month(x,2)→(durationFn(x,day)=28)⊕(durationFn(x,day)=29)

(g)month(x,4)∨month(x,6)∨month(x,9)∨month(x,11)→durationFn(x,day)=30

公理e),f),g)表示1月份到12月份的以天为单位的时间长度。

下面给出关于十年和世纪的公理。

a)century(x)→(startFn(x)=t8)∧(endFn(x)=t9)∧(durationFn(x,year)=100)

b)decade(x)→(startFn(x)=t6)∧(endFn(x)=t7)∧(durationFn(x,year)=10)

其中,谓词decade(x)和century(x)分别表示x是十年(Decade)和世纪(Century)的实例。t6表示能被10整除的公历年第一个公历日0:00的时间点。t7表示公历年x最后一个公历日24:00的时间点,其中,公历年x是所处年代第一个公历年和9之和。t8表示被100整除的公历年第一个公历日0:00的时间点。t9表示是公历年x最后一个公历日24:00的时间点,其中,公历年x是所处年代第一个公历年和99之和。

例如,以下公理描述时间单位之间的关系:

a)60×durationFn(T,hour)=durationFn(T,minute)

b)24×durationFn(T,day)=durationFn(T,hour)

c)12×durationFn(T,year)=durationFn(T,month)

另外,在时间表示中需要引入时区。表示时间点的具体时间与所处的时区相关。例如,如果位于东部第八时区的北京当地时间是2022年1月2日9:00,则位于西部第五时区的华盛顿当地时间是2022年1月1日21:00。由此,定义了谓词time-of(t;y,m,d,h,n,s;z),其中y,m,d,h,n和s是整数,1≤m≤12,1≤d≤31,0≤h≤24,0≤n≤60,0≤s≤60,并且z是世界时区。

a)time-of(t;y,m,d,h,n,s;GMT)↔time-of(t;y,m,d,h-x,n,s;the xth western time zone)∧time-of(t;y,m,d,h+x,n,s;the xth eastern time zone)∧(1≤x≤12)

b)∀T∀t1∀t2((startFn(T)=t1)∧(endFn(T)=t2)∧time-of(t1;y1,m1,d1,h1,n1,s1;z)∧time-of(t2;y2,m2,d2,h2,n2,s2;z)

→durationof(T;y1-y2,m1-m2,d1-d2,h1-h2,n1-n2,s1-s2))

公理a)表明了不同时区的时间之间的关系。对于开始时间点和结束时间点位于不同时区的时间段,公理b)给出了这种时间段的时长计算方法。其中,durationof(T,Δy,Δm,Δd,Δh,Δn,Δs)表示时间段T的时长是Δy年,Δm月,Δd日,Δh小时,Δn分钟和Δs秒。这六个变量的值均是实数。