假设我有一个结构比较时间(小时,分钟),
当用户键示例比较时间(10,40)时,
该结构将在一个时间范围内进行比较
时间输入
1)从10:00到12:00将打印一条消息并且
2)从18:00到20:00将打印一条消息。
如果键入的时间不在范围内,它也会打印一条消息。
我该怎么做?
比较单词很容易,但我真的很难比较时间。
答案 0 :(得分:1)
比较单词很容易吗? 你应该在涉及国际化时尝试一下,以了解它有多难! 从你的问题(如果我理解这个问题)中比较一对整数要容易得多。
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, !.