このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/db/1316769778/312
#  access2000で 
#   
#  NEN | TUKI  
#   23   |  11   
#  ってデータがあったら 
#   
#  平成23年12月31日のように常に次月末日を返したいのですが 
#  どのようなクエリになりますか? 
# 

'平成23年12月31日のように常に次月末日を返す'(_次月末日) :-
        年月(_NEN,_TUKI),
        '平成23年12月31日のように常に次月末日を返す'(_NEN,_TUKI,_次月末日).

'平成23年12月31日のように常に次月末日を返す'(_NEN,12,_次月末日) :-
        _NEN_2 is _NEN + 1,
        concat_atom([平成,_NEN_2,年,1,月,31,日],_次月末日),!.
'平成23年12月31日のように常に次月末日を返す'(_NEN,_TUKI,_次月末日) :-
        member(_TUKI,[2,4,6,7,9,11]),
        _TUKI_2 is _TUKI + 1,
        concat_atom([平成,_NEN,年,_TUKI_2,月,31,日],_次月末日),!.
'平成23年12月31日のように常に次月末日を返す'(_NEN,_TUKI,_次月末日) :-
        member(_TUKI,[3,5,8,10]),
        _TUKI_2 is _TUKI + 1,
        concat_atom([平成,_NEN,年,_TUKI_2,月,30,日],_次月末日),!.
'平成23年12月31日のように常に次月末日を返す'(_NEN,1,_次月末日) :-
        _西暦年 is _NEN + 1988,
        うるう年(_西暦年),
        concat_atom([平成,_NEN,年,2,月,29,日],_次月末日),!.
'平成23年12月31日のように常に次月末日を返す'(_NEN,1,_次月末日) :-
        _西暦年 is _NEN + 1988,
        \+(うるう年(_西暦年)),
        concat_atom([平成,_NEN,年,2,月,28,日],_次月末日),!.

うるう年(_年文字列) :-
        atom(_年文字列),
        atom_to_term(_年文字列,_年整数,_),!,
        うるう年(_年整数).
うるう年(_年) :-
        0 is _年 mod 400,!.
うるう年(_年) :-
        0 is _年 mod 100,!,
        fail.
うるう年(_年) :-
        0 is _年 mod 4,!.
うるう年(_年) :-
        \+(0 is _年 mod 4),
        fail.