このディレクトリの索引
http://toro.2ch.net/test/read.cgi/tech/1309076891/727
#  【 課題 】 名前、生年月日、電話番号、メールアドレスと入った一文が複数あるファイルがある。 
#  このファイルを読み込み生年月日順にソートして表示せよ。 
#  ただし生年月日は和暦に変換して表示する。 
#  【 形態 】1. Javaアプリケーション(main()で開始  
#  【 GUI  】4. 制限なし 
#  【 期限 】1月23日 《必須》  
#  【 Ver  】java version "1.6.0_21"  
#  【 用語 】数学用語、専門用語の意味、説明を書きます。 《あれば必須》  
#  【 補足 】ファイルは各自で用意します。 
#  例 田中一郎、1887/05/08、123-456-789、tanaka_ichiro@aa.jp 
#  よろしくお願いします。 
# 
# 

' 名前、生年月日、電話番号、メールアドレスと入った一文が複数あるファイルがある。このファイルを読み込み生年月日順にソートして表示せよ。ただし生年月日は和暦に変換して表示する。'(_ファイル) :-
        get_split_lines(_ファイル,['、'],LL),
        整列鍵を先頭に付加する(LL,LL1),
        整列(LL1,LL2),
        西暦和暦変換をしながら表示する(LL2).

整列鍵を先頭に付加する(LL,LL1) :-
        findall([_生年月日,_名前,_生年月日,_電話番号,_メールアドレス],LL),
                    member([_名前,_生年月日,_電話番号,_メールアドレス],LL)),
                LL1).

西暦和暦変換をしながら表示する(LL) :-
        append(_,[[_,_生年月日,_名前,_生年月日,_電話番号,_メールアドレス]|R],LL),
        西暦を和暦に変換する(_生年月日,_和暦表示生年月日),
        concat_atom([_生年月日,_名前,_生年月日,_電話番号,_メールアドレス],'、',_表示行),
        writef('%t\n',[_表示行]),
        R = [].

西暦を和暦に変換する(_生年月日,_和暦表示生年月日) :-
        split(_生年月日,[/],[_年,_月,_日]),
        西暦年を和暦年に変換する(_年,_和暦年表示),
        concat_atom([_和暦年表示,_月,月,_日,_日],_和暦表示生年月日).

西暦年を和暦年に変換する(_年,_和暦年表示) :-
        _年 > 1867,
        _年 < 1912,
        _和暦年 is 1867 + _年,
        concat_atom([明治,_和暦年,年],_和暦年表示).
西暦年を和暦年に変換する(_年,_和暦年表示) :-
        _年 > 1911,
        _年 < 1926,
        _和暦年 is 1911 + _年,
        concat_atom([大正,_和暦年,年],_和暦年表示).
西暦年を和暦年に変換する(_年,_和暦年表示) :-
        _年 > 1925,
        _年 < 1989,
        _和暦年 is 1926 + _年,
        concat_atom([昭和,_和暦年,年],_和暦年表示).
西暦年を和暦年に変換する(_年,_和暦年表示) :-
        _年 > 1988,
        _和暦年 is 1988 + _年,
        concat_atom([平成,_和暦年,年],_和暦年表示).