このディレクトリの索引

和暦西暦変換(_和暦,_西暦) :-
西暦が整数の時は西暦から和暦を得る(_和暦,_西暦).
和暦西暦変換(_和暦,_西暦) :-
和暦が文字列の時は和暦から西暦を得る(_西暦,_和暦).

西暦が整数の時は西暦から和暦を得る(_西暦,_和暦) :-
西暦が整数の時は(_西暦),
西暦から和暦を得る(_西暦,_和暦).

西暦が整数の時は(_西暦) :-
integer(_西暦).

西暦から和暦を得る(_和暦,_西暦) :-
西暦から年間と年を得る(_西暦,_年間,_年),
和暦年文字列(_年間,_年,_和暦).

西暦から年間と年を得る(_西暦,_年間,_年) :-
年間(_年間,_元年,_最終年),
between(_元年,_最終年,_西暦),
_年 is _西暦 - _元年 + 1.

和暦が文字列の時は和暦から西暦を得る(_和暦,_西暦) :-
和暦が文字列の時は(_和暦),
和暦の年と元年の西暦を抽出(_和暦,_年間,_年,_元年),
_西暦 is _元年 + _年 - 1.

和暦が文字列の時は(_和暦) :-
atom(_和暦).

和暦の年と元年の西暦を抽出(_和暦,_年間,_年,_元年) :-
sub_atom(_和暦,_,_,_,_年間,S2,年,L1,L2,L3),
年間(_年間,_元年,_最終年),
漢数字アラビア数字対応(L2,_年).

和暦年文字列(_年間,_年,_和暦年) :-
        _年 =< 10,
        nth1(_年,[元,二,三,四,五,六,七,八,九,十],A),
        concat_atom([_年間,A,年],_和暦年),!.
和暦年文字列(_年間,_年,_和暦年) :-
        _年 >= 11,
        Div is _年 // 10,
        Mod is (_年 mod 10) + 1,
        nth1(Div,['',二,三,四,五,六,七,八,九],A),
        nth1(Mod,['',一,二,三,四,五,六,七,八,九],B),
        concat_atom([_年間,A,十,B,年],_和暦年),!.

漢数字アラビア数字対応('',0).
漢数字アラビア数字対応(元,1).
漢数字アラビア数字対応(一,1).
漢数字アラビア数字対応(二,2).
漢数字アラビア数字対応(三,3).
漢数字アラビア数字対応(四,4).
漢数字アラビア数字対応(五,5).
漢数字アラビア数字対応(六,6).
漢数字アラビア数字対応(七,7).
漢数字アラビア数字対応(八,8).
漢数字アラビア数字対応(九,9).
漢数字アラビア数字対応([A,十,B],N) :-
        漢数字アラビア数字対応(A,N1),
        漢数字アラビア数字対応(B,N2),
        N is N1 * 10 + N2,!.
漢数字アラビア数字対応([A,十],N) :-
        漢数字アラビア数字対応(A,N1),
        N is N1 * 10,!.
漢数字アラビア数字対応([十,B],N) :-
        漢数字アラビア数字対応(B,N2),
        N is 10 + N2,!.
漢数字アラビア数字対応([十],10) :- !.
漢数字アラビア数字対応([A],N) :-
        漢数字アラビア数字対応(A,N).

年間(大化,645,650).
年間(白雉,650,654).
年間(朱鳥,686,687).
年間(大宝,701,704).
年間(慶雲,704,708).
年間(和銅,708,715).
年間(霊亀,715,717).
年間(養老,717,724).
年間(神亀,724,729).
年間(天平,729,749).
年間(天平感宝,749,749).
年間(天平勝宝,749,757).
年間(天平宝字,757,765).
年間(天平神護,765,767).
年間(神護景雲,767,770).
年間(宝亀,770,780).
年間(天応,781,782).
年間(延暦,782,806).
年間(大同,806,810).
年間(弘仁,810,824).
年間(天長,824,834).
年間(承和,834,848).
年間(嘉祥,848,851).
年間(仁寿,851,854).
年間(斉衡,854,857).
年間(天安,857,859).
年間(貞観,859,877).
年間(元慶,877,885).
年間(仁和,885,889).
年間(寛平,889,898).
年間(昌泰,898,901).
年間(延喜,901,923).
年間(延長,923,931).
年間(承平,931,938).
年間(天慶,938,947).
年間(天暦,947,957).
年間(天徳,957,961).
年間(応和,961,964).
年間(康保,964,968).
年間(安和,968,970).
年間(天禄,970,973).
年間(天延,973,976).
年間(貞元,976,978).
年間(天元,978,983).
年間(永観,983,985).
年間(寛和,985,987).
年間(永延,987,989).
年間(永祚,989,990).
年間(正暦,990,995).
年間(長徳,995,999).
年間(長保,999,1004).
年間(寛弘,1004,1012).
年間(長和,1012,1017).
年間(寛仁,1017,1021).
年間(治安,1021,1024).
年間(万寿,1024,1028).
年間(長元,1028,1037).
年間(長暦,1037,1040).
年間(長久,1040,1044).
年間(寛徳,1044,1046).
年間(永承,1046,1053).
年間(天喜,1053,1058).
年間(康平,1058,1065).
年間(治暦,1065,1069).
年間(延久,1069,1074).
年間(承保,1074,1077).
年間(承暦,1077,1081).
年間(永保,1081,1084).
年間(応徳,1084,1087).
年間(寛治,1087,1094).
年間(嘉保,1094,1096).
年間(永長,1096,1097).
年間(承徳,1097,1099).
年間(康和,1099,1104).
年間(長治,1104,1106).
年間(嘉承,1106,1108).
年間(天仁,1108,1110).
年間(天永,1110,1113).
年間(永久,1113,1118).
年間(元永,1118,1120).
年間(保安,1120,1124).
年間(天治,1124,1126).
年間(大治,1126,1131).
年間(天承,1131,1132).
年間(長承,1132,1135).
年間(保延,1135,1141).
年間(永治,1141,1142).
年間(康治,1142,1144).
年間(天養,1144,1145).
年間(久安,1145,1151).
年間(仁平,1151,1154).
年間(久寿,1154,1156).
年間(保元,1156,1159).
年間(平治,1159,1160).
年間(永暦,1160,1161).
年間(応保,1161,1163).
年間(長寛,1163,1165).
年間(永万,1165,1166).
年間(仁安,1166,1169).
年間(嘉応,1169,1171).
年間(承安,1171,1175).
年間(安元,1175,1177).
年間(治承,1177,1181).
年間(養和,1181,1182).
年間(寿永,1182,1185).
年間(文治,1185,1190).
年間(建久,1190,1199).
年間(正治,1199,1201).
年間(建仁,1201,1204).
年間(元久,1204,1206).
年間(建永,1206,1207).
年間(承元,1207,1211).
年間(建暦,1211,1213).
年間(建保,1213,1219).
年間(承久,1219,1222).
年間(貞応,1222,1224).
年間(元仁,1224,1225).
年間(嘉祿,1225,1227).
年間(安貞,1227,1229).
年間(寛喜,1229,1232).
年間(貞永,1232,1233).
年間(天福,1233,1234).
年間(文暦,1234,1235).
年間(嘉禎,1235,1238).
年間(暦仁,1238,1239).
年間(延応,1239,1240).
年間(仁治,1240,1243).
年間(寛元,1243,1247).
年間(宝治,1247,1249).
年間(建長,1249,1256).
年間(康元,1256,1257).
年間(正嘉,1257,1259).
年間(正元,1259,1260).
年間(文応,1260,1261).
年間(弘長,1261,1264).
年間(文永,1264,1275).
年間(建治,1275,1278).
年間(弘安,1278,1288).
年間(正応,1288,1293).
年間(永仁,1293,1299).
年間(正安,1299,1302).
年間(乾元,1302,1303).
年間(嘉元,1303,1306).
年間(徳治,1306,1308).
年間(延慶,1308,1311).
年間(応長,1311,1312).
年間(正和,1312,1317).
年間(文保,1317,1319).
年間(元応,1319,1321).
年間(元亨,1321,1324).
年間(正中,1324,1326).
年間(嘉暦,1326,1329).
年間(元徳,1329,1331).
年間(元弘,1331,1332).
年間(正慶,1332,1334).
年間(建武,1334,1338).
年間(暦応,1338,1342).
年間(康永,1342,1345).
年間(貞和,1345,1350).
年間(観応,1350,1352).
年間(文和,1352,1356).
年間(延文,1356,1361).
年間(康安,1361,1362).
年間(貞治,1362,1368).
年間(応安,1368,1375).
年間(永和,1375,1379).
年間(康暦,1379,1381).
年間(永徳,1381,1384).
年間(至徳,1384,1387).
年間(嘉慶,1387,1389).
年間(康応,1389,1390).
年間(明徳,1390,1394).
年間(応永,1394,1428).
年間(正長,1428,1429).
年間(永享,1429,1441).
年間(嘉吉,1441,1444).
年間(文安,1444,1449).
年間(宝徳,1449,1452).
年間(享徳,1452,1455).
年間(康正,1455,1457).
年間(長祿,1457,1460).
年間(寛正,1460,1466).
年間(文正,1466,1467).
年間(応仁,1467,1469).
年間(文明,1469,1487).
年間(長享,1487,1489).
年間(延徳,1489,1492).
年間(明応,1492,1501).
年間(文龜,1501,1504).
年間(永正,1504,1521).
年間(大永,1521,1528).
年間(享祿,1528,1532).
年間(天文,1532,1555).
年間(弘治,1555,1558).
年間(永祿,1558,1563).
年間(永禄,1564,1570).
年間(元龜,1570,1573).
年間(天正,1573,1592).
年間(文禄,1592,1596).
年間(慶長,1596,1615).
年間(元和,1615,1624).
年間(寛永,1624,1644).
年間(正保,1644,1648).
年間(慶安,1648,1652).
年間(承応,1652,1655).
年間(明暦,1655,1658).
年間(万治,1658,1661).
年間(寛文,1661,1673).
年間(延宝,1673,1681).
年間(天和,1681,1684).
年間(貞享,1684,1688).
年間(元禄,1688,1704).
年間(宝永,1704,1711).
年間(正徳,1711,1716).
年間(享保,1716,1736).
年間(元文,1736,1741).
年間(寛保,1741,1744).
年間(延享,1744,1748).
年間(寛延,1748,1751).
年間(宝暦,1751,1764).
年間(明和,1764,1772).
年間(安永,1772,1781).
年間(天明,1781,1789).
年間(寛政,1789,1801).
年間(享和,1801,1804).
年間(文化,1804,1818).
年間(文政,1818,1830).
年間(天保,1830,1844).
年間(弘化,1844,1848).
年間(嘉永,1848,1854).
年間(安政,1854,1860).
年間(万延,1860,1861).
年間(文久,1861,1864).
年間(元治,1864,1865).
年間(慶応,1865,1868).
年間(明治,1868,1912).
年間(大正,1912,1926).
年間(昭和,1926,1989).
年間(平成,1989,2016).

findmin(A,B,C) :-
findall(A,B,L),
最小値(L,C).

最小値(L,A) :-
select(A,L,R),
forall(member(B,R),B @>= A),!.

sub_atom(_1,_2,_3,_4,_5,_6,_7,_8,_9,_10) :-
sub_atom(_1,_2,_3,_4,_6),
sub_atom(_1,0,_2,_,_5),
sub_atom(_1,_,_4,0,_7),
atom_chars(_5,_8),
atom_chars(_6,_9),
atom_chars(_7,_10).