0
我試圖比較兩次以查看哪個時間少於另一個時間。一個示例實現將是ArrivalTime < DepartureTime2,其中ArrivalTime和DepartureTime2可以採用格式(XX:XX)的值,例如12:00或15:50。我正在考慮將XX:XX格式轉換爲常規XXXX格式,但我不知道如何操作。有沒有其他方法可以解決這個問題?在Prolog中比較兩次格式爲(XX:XX)的子規則
我試圖比較兩次以查看哪個時間少於另一個時間。一個示例實現將是ArrivalTime < DepartureTime2,其中ArrivalTime和DepartureTime2可以採用格式(XX:XX)的值,例如12:00或15:50。我正在考慮將XX:XX格式轉換爲常規XXXX格式,但我不知道如何操作。有沒有其他方法可以解決這個問題?在Prolog中比較兩次格式爲(XX:XX)的子規則
沒有必要。編寫爲12:00
或15:50
的時間是一個有效的Prolog術語。您可以使用短期比較(而不是算術比較)對它們進行比較:
?- 12:00 @< 15:50.
true.
?- 12:00 @< 5:50.
false.
你應該閱讀你所使用的序言中的文檔。例如,在SWI-Prolog中,相關部分是"Standard order of terms"。
順便說一句,如果你想知道如何Prolog的看到一個任期15:50
:
?- write_canonical(15:50).
:(15,50)
true.
這就告訴你,15:50
被解釋爲仿:/2
的術語,用時間作爲第一個參數和第二個分鐘。這工作,因爲:
被聲明爲運營商:
?- current_op(Precedence, Type, :).
Precedence = 600,
Type = xfy.
你可能只是以及使用的表示爲h_m(15, 50)
。這樣的術語將排序相同:
?- h_m(12, 00) @< h_m(15, 50).
true.
歡迎來到堆棧溢出。通常希望你至少表現出一些努力:你嘗試過的代碼,以及它沒有起作用。例如,你是否試圖寫'? - 12:00 <15:00。',當你做了什麼? – 2015-11-07 08:47:27