このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1311089619/28
#  (1)c言語(2)問題:日数計算プログラムをベースに基ずいて「ここに処理が入る」というところに入力をお願いします 
#  実行結果:数え始める西暦を入力してください   1967,8,7 
#  数え終える西暦を入力してください        2009,6,12 
#  1967,8,7から2009,6,12までの日数は15285日です 
#  ベース 
#  #include <stdio.h> 
#      int uruu(int y); 
#      int monthday(int y, int m); 
#  int main(){ 
#      int year_a, month_a, day_a; 
#      int year_b, month_b, day_b; 
#      int days; 
#      int i; 
#      days = 0; 
#      printf("日数計算プログラム\n"); 
#      printf("数え始める西暦年月日を入力してください\n"); 
#      scanf("%d,%d,%d",&year_a, &month_a, &day_a); 
#      printf("終わりの西暦年月日を入力してください\n"); 
#      scanf("%d,%d,%d",&year_b, &month_b, &day_b); 
#  ここに処理が入る 
#      printf("%d年%d月%d日から%d年%d月%d日までの日数は%d日です。\n",year_a, month_a, day_a, year_b, month_b, day_b, days); 
#      return 0;} 
#  int uruu(int y){ 
#      int ret; 
#  ここに処理が入る 
#      return ret; 
#  } 
#  int monthday(int y, int m){ 
#      int d; 
#  ここに処理が入る 
#      return d; 
#  } 
# 

日数を数える :-
       数え始める西暦を入力してください(_年1,_月1,_日1),
       終わりの西暦年月日を入力してください(_年2,_月2,_日2),
       日数を数える(_年1,_月1,_日1,_年2,_月2,_日2,0,_日数).
       writef('%t年%t月%t日から%t年%t月%t日までの日数は%t日です。\n',[_年1,_月1,_日1,_年2,_月2,_日2,_日数]).

日数を数える(_年2,_月1,_日1,_年2,_月2,_日2,_日数,_日数) :-
       _月1 >= _月2,
       _日1 >= _日2,!.
日数を数える(_年1,_月1,_日1,_年2,_月2,_日2,_日数1,_日数) :-
       翌日(_年1,_月1,_日1,_翌日の年,_翌日の月,_翌日の日),
       _日数2 is _日数1 + 1,
       日数を数える(_翌日の年,_翌日の月,_翌日の日,_年2,_月2,_日2,_日数).

翌日(_年1,12,31,_翌日の年,1,1) :-
        _翌日の年 is _年1 + 1,!.
翌日(_年,_月1,_日1,_年,_月2,1) :-
        月末日(_年1,_月1,_日1),
        _月2 is _月1 + 1,!.
翌日(_年,_月,_日1,_年,_月,_日2) :-
        _日2 is _日1 + 1.

月末日(_年,2,29) :- !.
月末日(_年,2,28) :-
        \+(うるう年(_年)),!.
月末日(_,_,31) :- !.
月末日(_,_,30) :-
        member(_月,[4,6,9,11]),!.

数え始める西暦を入力してください(_年,_月,_日) :-
        write('数え始める西暦を入力してください '),
        readln([_年,_月,_日]).

終わりの西暦年月日を入力してください(_年,_月,_日) :-
        write('終わりの西暦年月日を入力してください '),
        readln([_年,_月,_日]).

うるう年(_年) :-
        0 is _年 mod 400,!.
うるう年(_年) :-
        0 is _年 mod 100,!,
        fail.
うるう年(_年) :-
        0 is _年 mod 4,!.
うるう年(_年) :-
        \+(0 is _年 mod 4),
        fail.