2
假设我有一个结构comparetime(小时,分钟), 当用户按键示例comparetime(10,40), 结构将使指定上的时间范围比较例 定时从10进入
1): 00至12:00将打印一条消息,并且 2)从18:00至20:00将打印一条消息。 如果键控的时间不在范围内,它也会打印一条消息。如何将时间与Prolog中指定的时间范围进行比较?
我该怎么做?
这很容易比较单词,但我真的很难与比较时间。
假设我有一个结构comparetime(小时,分钟), 当用户按键示例comparetime(10,40), 结构将使指定上的时间范围比较例 定时从10进入
1): 00至12:00将打印一条消息,并且 2)从18:00至20:00将打印一条消息。 如果键控的时间不在范围内,它也会打印一条消息。如何将时间与Prolog中指定的时间范围进行比较?
我该怎么做?
这很容易比较单词,但我真的很难与比较时间。
这很容易比较文字? 当涉及到国际化时,您应该尝试一下,以体会到有多难! 更容易比较对整数,从你的问题(如果我理解的问题)。
message_on_range(1, 10:00, 12:00, 'it\'s morning!').
message_on_range(2, 18:00, 20:00, 'it\'s evening!').
comparetime(Hours, Mins) :-
message_on_range(_, Start, Stop, Message),
less_equal_time(Start, Hours:Mins),
less_equal_time(Hours:Mins, Stop),
write(Message), nl.
comparetime(_Hours, _Mins) :-
write('please check your clock!'), nl.
less_equal_time(H1:S1, H2:S2) :-
H1 == H2 -> S1 =< S2 ; H1 < H2.
你应该知道Prolog的特点:你的问题可能需要在消息打印后进行剪切!即
...
less_equal_time(Hours:Mins, Stop),
write(Message), nl, !.
非常感谢。真的很感激它:) –