将数字/字符串转换为时间 - PROLOG

时间:2013-10-25 00:19:17

标签: prolog scheduling

我是prolog的初学者,并且想知道是否有一种简单的方法可以将数字转换为时间,以供比较。

例如: 以下两个列表显示了公交车名称,容量,到达城市的时间,离开城市的时间。 bus_info(bus1,150,12:30,14:30)。 bus_info(bus2,200,16:00,18:00)。

passenger_info(迈克,21,17:30)。 - 显示名称,年龄和可用时间

我想查看迈克能抓到哪辆巴士。答案是总线2,但如何在prolog中计算出来?

1 个答案:

答案 0 :(得分:2)

您只是比较某一天的时间,因此您无需将数字转换为任何类型的系统时间编码。你只需要说“午夜过夜”或类似的东西。例如,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谓词基本上如何工作,那么基本信息应该可以帮到您。