チョコミントアイス

現在SWI-Prologの勉強をしています.
現在の時間を表示させたいのですが,うまくいきません.

7 ?- get_time(T).
T = 1.21413e+009.

9 ?- stamp_date_time(1.21413e+009,D,0).
D = date(2008, 6, 22, 10, 20, 0.0, 0, -, -).

プログラム実行時の時間は20:03分なのに,
10:20分でずれがあります.しかも,get_time(T)は
いつ実行しても同じ結果が出てしまい,現在の時間を表示さ
せてくれません(19:40に実行したときも同じ結果).
どうすれば現在の時間を表示させることができるでしょうか?

ご教授願います.

A 回答 (2件)

> T = 1.21413e+009.


ていうのは、多分、数字の上のほうの桁しか表示されてないだけだと思う。
?- get_time(T), format(~f',T).
てして、小数点以下まで表示してみれば毎回違う数字になるのでは。

stamp_date_timeの結果が毎回同じなのも、1.21413e+009ていう四捨五入されている数字をいれているから。

?- get_time(T), stamp_date_time(T,D,0).
て感じ、でget_timeで得た値をそのままstamp_date_timeに入れないと駄目。

この回答への補足

get_time(T), stamp_date_time(T,D,0).
では実行できました!!
ありがとうございます.

でも,?- get_time(T), format(~f',T).を実行すると
結果が出ないで入力待ちの状態になってしまします.
どうすれば小数点以下まで表示されるのでしょうか?

補足日時:2008/06/23 19:54
    • good
    • 0

?- get_time(T), format('~f',T).


’が抜けてました。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!