我是prolog的初学者,并且想知道是否有一种简单的方法可以将数字转换为时间,以供比较。
例如: 以下两个列表显示了公交车名称,容量,到达城市的时间,离开城市的时间。 bus_info(bus1,150,12:30,14:30)。 bus_info(bus2,200,16:00,18:00)。
passenger_info(迈克,21,17:30)。 - 显示名称,年龄和可用时间
我想查看迈克能抓到哪辆巴士。答案是总线2,但如何在prolog中计算出来?
答案 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谓词基本上如何工作,那么基本信息应该可以帮到您。