このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1320365280/211
#  [1] 授業単元:プログラミング入門 
#  [2] 問題文:秒数を与えると,それが何日何時間何分何秒にあた 
#  るかを計算する関数 
#  calctime(long sec, int *dp, int *hp, int *mp, 
#  int *sp); 
#  を作成せよ.例えば 
#  calctime(100000, &d, &h, &m, &s); 
#  として呼び出すとd=1, h=3,m=46,s=40 となる 
#  (100,000 秒=1 日3 時間46 分40 秒).以下の実行例の 
#  ように,関数の動作を確認できるmain 関数も作成しろ 
#    実行例.秒数を入力してください:100000 
#  100000 秒= 1 日3 時間46 分40 秒 
#  

'秒数を与えると,それが何日何時間何分何秒にあたるかを計算する' 
        秒数を与えると(_秒数),
        それが何日何時間何分何秒にあたるかを計算する(_秒数,_何日,_何時間,_何分),
        何日何時間何分にあたるかを表示する(_秒数,_何日,_何時間,_何分).

秒数を与えると(_秒数) :-
        write('秒数を入力してください:\n'),
        get_line(Line),
        秒数入力診断(Line,_秒数),!.
秒数を与えると(_秒数) :-
        秒数を与えると(_秒数).

秒数入力診断(Line,_秒数) :-
        atom_to_term(Line,_秒数,_),
        integer(_秒数),
        _秒数 >= 0,!.
秒数入力診断(Line,_秒数) :-
        writef('入力された %t からは適切な秒数が得られません。再入力をお願いします。\n',[Line]),
        fail.

それが何日何時間何分何秒にあたるかを計算する(_秒数,_何日,_何時間,_何分) :-
        _何日 is _秒数 // 86400,
        _余りの一 is _秒数 mod 86400,
        _何時間 is _余り // 3600,
        _余りの二 is _余り mod 3600,
        _何分 is _余り // 60.

何日何時間何分にあたるかを表示する(_秒数,_何日,_何時間,_何分) :-
        writef('%t 秒= %t日%t時間%t分\n',[_秒数,_何日,_何時間,_何分]).