このディレクトリの索引
http://hibari.2ch.net/test/read.cgi/tech/1289816228/237
#  プログラム初心者です。 
#  寺の門徒のデータベースを作って管理したいと考えています。 
#   
#  データの項目としては 
#  故人のデータ:法名、俗名、命日(年月日)、年齢、続柄、世帯主 
#  世帯主のデータ:氏名、住所、電話番号 
#  お布施のデータ:世帯主、金額、年月日、種類(月参り、会費、法事・・・) 
#  (どのようにまとめたらいいかはまだ考え中です) 
#   
#  やりたいことは、 
#  1.2011年の年回忌(1,3,7,13,17、・・・)のデータを抽出して世帯主宛に案内の文面を作る 
#  2.故人のデータ(命日)から中陰表(七日毎のお参りの日程表)を作る 
#  3.会計 
#   
#  故人のデータや世帯主のデータはExcelで入力済ですが、 
#  そこから簡単に(数クリックで)1.2のようなことができないかと考えています。 
#  どのようなプログラムを使えばよいのでしょうか? 
# 

寺名(大徳寺芳春院).

'2014年の年回忌(1,3,7,13,17、・・・)のデータを抽出して世帯主宛に案内の文面を作る' :-
        '2014年の年回忌データの抽出'([1,3,7,13,17,23,27,33,50],_2014年の年回忌データならび),
        回忌案内の作成(_2014年の年回忌データならび).

'2014年の年回忌データの抽出'([],[]) :- !.
'2014年の年回忌データの抽出'([_回忌|R1],[[_回忌,_年回忌データ]|R2]) :-
        '2014年の年回忌と命日の年変換'(_回忌,_命日の年),
        findall([_法名,_俗名,_命日,_年齢,_続柄,_世帯主,_住所,_電話番号],(
                    故人情報(_法名,_俗名,_命日,_年齢,_続柄,_世帯主,_住所,_電話番号)),
                _年回忌データ),
        '2014年の年回忌データの抽出'(R1,R2).

'2014年の年回忌と命日の年変換'(1,2013) :- !.
'2014年の年回忌と命日の年変換'(_回忌,_年) :-
        _年 is 2014 - _回忌 + 1,!.

故人情報(_法名,_俗名,_命日,_年齢,_続柄,_世帯主,_住所,_電話番号) :-
        故人のデータ(_法名,_俗名,_命日,_年齢,_続柄,_世帯主),
        sub_atom(_命日,0,4,_,_命日の年),
        _世帯主=_氏名,
        世帯主のデータ(_氏名,_住所,_電話番号).

回忌案内の作成([]) :- !.
回忌案内の作成([[_回忌|_回忌データならび]|R]) :-
        回忌を指定して回忌案内の作成(_回忌,_回忌データならび),
        回忌案内の作成(R).

回忌を指定して回忌案内の作成(_回忌,[_回忌データ|R]) :-
        世帯主宛に案内の文面を作る(_回忌,_回忌データ),
        回忌を指定して回忌案内の作成(_回忌,R).

世帯主宛に案内の文面を作る(1,[_法名,_俗名,_命日,_年齢,_続柄,_世帯主,_住所,_電話番号]) :-
        寺名(_寺名),
        writef('一周忌法要のご案内\n%t様御中\n今年は故%t様(法名%t)の一周忌のご法要の年となりました。\n%tでは檀家の皆様が故人を偲び\n仏様と故人、そして皆様のめぐりあいの場として\n一周忌法要の準備を整えております。\nここにご案内申しあげます。\n',[_世帯主,_俗名,_法名,_寺名]),!.
世帯主宛に案内の文面を作る(_回忌,[_法名,_俗名,_命日,_年齢,_続柄,_世帯主,_住所,_電話番号]) :-
        寺名(_寺名),
        回忌の数字変換(_回忌,_回忌漢字表現),
        writef('%t回忌法要のご案内\n%t様御中\n今年は縁深き故%t様(法名%t)の%t回忌のご法要の年となりました。\n%tでは檀家の皆様が故人を偲び\n仏様と故人、そして皆様のめぐりあいの場として\n%t回忌法要の準備を整えております。\nここにご案内申しあげます。\n',[_回忌漢字表現,_世帯主,_俗名,_法名,_回忌漢字表現,_寺名,_回忌漢字表現]).

回忌の数字変換([1,3,7,13,17,23,27,33,50],[一,三,七,十三,十七,二十三,二十七,三十三,五十]).

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

故人のデータ(死死死死生生生生居士,尾崎隆大,'20111009',38,長男,尾崎作蔵).

世帯主のデータ(尾崎作蔵,'京都市右京区花園天授ケ岡888','075-444-9999').


/*
'中陰表(七日毎のお参りの日程表)を作る'(_中陰逮夜,_故人の命日,_中陰逮夜日) :-
        中陰逮夜(_中陰逮夜),
        中陰逮夜(_中陰逮夜,_故人の命日,_中陰逮夜日).

中陰逮夜(初七日,_命日,_初七日) :-
        '5日後'(_命日,_初七日).
中陰逮夜(_初月忌,_命日,_中陰) :-
        '翌月の同日'(_命日,_中陰).
中陰逮夜(_満中陰,_命日,_中陰) :-

中陰逮夜(百箇日,_命日,_中陰) :-
中陰逮夜(_中陰,_命日,_中陰) :-
        sub_atom(_中陰,2,1,_,日),
        sub_atom(_中陰,0,2,_,_数字漢字表現),
        list_nth(Nth,[二十七,三十七,四十七,五十七,六十七],_数字漢字表現),
        list_nth(Nth,[27,37,47,57,67],
        N_1 is N - 1,
        'n日後'(N_1,_命日,_中陰).
        
中陰逮夜(初七日).
中陰逮夜(二七日).
中陰逮夜(三七日).
中陰逮夜(四七日).
中陰逮夜(初月忌).
中陰逮夜(五七日).
中陰逮夜(六七日).
中陰逮夜(満中陰).
中陰逮夜(百箇日).
*/