我是序言的初学者,想知道是否有一种简单的方法可以将数字转换为时间,以进行比较。
例如:下面两个列表显示了巴士名称、容量、到达城市的时间、离开城市的时间。bus_info(bus1,150, 12:30, 14:30)。bus_info(bus2, 200, 16:00, 18:00)。
乘客信息(麦克,21,17:30)。- 显示姓名、年龄和可用时间
我想看看迈克能赶上哪辆公共汽车。答案是总线 2,但我如何在 prolog 中计算呢?
我是序言的初学者,想知道是否有一种简单的方法可以将数字转换为时间,以进行比较。
例如:下面两个列表显示了巴士名称、容量、到达城市的时间、离开城市的时间。bus_info(bus1,150, 12:30, 14:30)。bus_info(bus2, 200, 16:00, 18:00)。
乘客信息(麦克,21,17:30)。- 显示姓名、年龄和可用时间
我想看看迈克能赶上哪辆公共汽车。答案是总线 2,但我如何在 prolog 中计算呢?
您只是在比较给定日期的时间,因此您不需要将数字转换为任何类型的系统时间编码。您只需要说“午夜过后的几分钟”或类似的话。例如,12:30
将是(12*60)+30
午夜过后的几分钟。您可以将其用作每日日程的比较单位。
如果您要在 Prolog 中“询问”,请记录您的小时数和分钟数来执行此计算:
bus_info(Bus, Num, StartHH:StartMM, EndHH:EndMM).
你会得到两个结果:
Bus = bus1
Num = 150
StartHH = 12
StartMM = 30
EndHH = 14
EndHH = 30
和
Bus = bus2
Num = 200
StartHH = 16
StartMM = 0
EndHH = 18
EndMM = 0
要在 Prolog 中为表达式分配数值,您需要is
谓词。例如:
StartTime is (StartHH * 60) + StartMM.
如果您了解了 Prolog 谓词的基本工作原理,那么这些基本信息应该可以帮助您入门。