Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将数字/字符串转换为时间-PROLOG_Prolog_Scheduling - Fatal编程技术网

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

将数字/字符串转换为时间-PROLOG,prolog,scheduling,Prolog,Scheduling,我是prolog的初学者,想知道是否有一种简单的方法可以将数字转换为时间,以便进行比较 例如: 以下两个列表显示了公交车名称、载客量、到达城市的时间和离开城市的时间。 巴士信息(巴士1150,12:30,14:30)。 公交车信息(公交车220016:00,18:00) 乘客信息(迈克,21,17:30)-显示姓名、年龄和可用时间 我想看看迈克能赶上哪辆公共汽车。答案是bus 2,但是我如何在prolog中计算它呢?您只是比较给定一天的时间,因此不需要将数字转换为任何类型的系统时间编码。你只需要

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

例如: 以下两个列表显示了公交车名称、载客量、到达城市的时间和离开城市的时间。 巴士信息(巴士1150,12:30,14:30)。 公交车信息(公交车220016:00,18:00)

乘客信息(迈克,21,17:30)-显示姓名、年龄和可用时间


我想看看迈克能赶上哪辆公共汽车。答案是bus 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

要在Prolog中指定表达式的数值,需要使用
is
谓词。例如:

StartTime is (StartHH * 60) + StartMM.

如果您已经了解了Prolog谓词的基本工作原理,那么这些基本信息应该会让您开始学习。

我可能会担心,因为一些Prolog(特别是SWI)使用此运算符作为模块名称空间解析运算符。但这在SWI和GNU中似乎是开箱即用的,所以也许我无缘无故地担心…
StartTime is (StartHH * 60) + StartMM.