このディレクトリの索引

国民の祝日である(_年,_月,_日) :-
        '国民の祝日に関する法律 第二条  「国民の祝日」を次のように定める。'(_,_,_年,_月,_日).

振替休日である(_振替休日の年,_振替休日の月,_振替休日の日) :-
        '国民の祝日に関する法律 第三条 2  「国民の祝日」が日曜日に当たるときは、その日後においてその日に最も近い「国民の祝日」でない日を休日とする。'(_振替休日の年,_振替休日の月,_振替休日の日).

国民の休日である(_国民の休日の年,_国民の休日の月,_国民の休日の日) :-
        '国民の祝日に関する法律 第三条 3  その前日及び翌日が「国民の祝日」である日(「国民の祝日」でない日に限る。)は、休日とする。'(_国民の休日の年,_国民の休日の月,_国民の休日の日).

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


国民の祝日に関する法律 :-
        '(昭和二十三年七月二十日法律第百七十八号)',
        '最終改正:平成一七年五月二〇日法律第四三号',
        '国民の祝日に関する法律 第一条  自由と平和を求めてやまない日本国民は、美しい風習を育てつつ、よりよき社会、より豊かな生活を築きあげるために、ここに国民こぞつて祝い、感謝し、又は記念する日を定め、これを「国民の祝日」と名づける。',
        '国民の祝日に関する法律 第二条  「国民の祝日」を次のように定める。',
        '国民の祝日に関する法律 第三条  「国民の祝日」は、休日とする。'.
        '国民の祝日に関する法律 第三条 2  「国民の祝日」が日曜日に当たるときは、その日後においてその日に最も近い「国民の祝日」でない日を休日とする。'.

'国民の祝日に関する法律 第一条  自由と平和を求めてやまない日本国民は、美しい風習を育てつつ、よりよき社会、より豊かな生活を築きあげるために、ここに国民こぞつて祝い、感謝し、又は記念する日を定め、これを「国民の祝日」と名づける。'.


'国民の祝日に関する法律 第二条  「国民の祝日」を次のように定める。'.

'国民の祝日に関する法律 第二条  「国民の祝日」を次のように定める。'(_祝日の名称,_条文,_年,_月,_日) :-
        国民の祝日(_祝日の名称,_条文,_年,_月,_日).


'国民の祝日に関する法律 第三条  「国民の祝日」は、休日とする。'.


'国民の祝日に関する法律 第三条 2  「国民の祝日」が日曜日に当たるときは、その日後においてその日に最も近い「国民の祝日」でない日を休日とする。'.

'国民の祝日に関する法律 第三条 2  「国民の祝日」が日曜日に当たるときは、その日後においてその日に最も近い「国民の祝日」でない日を休日とする。'(_振替休日の年,_振替休日の月,_振替休日の日) :-
        '祝日が日曜の場合は翌日以降の平日を振替休日にする'(_振替休日の年,_振替休日の月,_振替休日の日).


'国民の祝日に関する法律 第三条 3  その前日及び翌日が「国民の祝日」である日(「国民の祝日」でない日に限る。)は、休日とする。'.

'国民の祝日に関する法律 第三条 3  その前日及び翌日が「国民の祝日」である日(「国民の祝日」でない日に限る。)は、休日とする。'(_国民の休日の年,_国民の休日の月,_国民の休日の日) :-
        '国民の休日とは、国民の祝日にはさまれた平日を指す'(_国民の休日の年,_国民の休日の月,_国民の休日の日).


'(昭和二十三年七月二十日法律第百七十八号)'.

'最終改正:平成一七年五月二〇日法律第四三号'.

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

国民の祝日(元日,'一月一日 年のはじめを祝う。',_,1,1).
国民の祝日(成人の日,'一月の第二月曜日 おとなになつたことを自覚し、みずから生き抜こうとする青年を祝いはげます。',_年,1,_日) :-
        第二月曜日(_年,1,_日).
国民の祝日(建国記念の日,'政令で定める日 建国をしのび、国を愛する心を養う。',_年,_月,_日) :-
        建国記念日の日に関する政令(_年,_月,_日).
国民の祝日(春分の日,'春分日 自然をたたえ、生物をいつくしむ。',_年,_月,_日) :-
        春分の日(_年,_月,_日).
国民の祝日(昭和の日,'昭和の日 四月二十九日 激動の日々を経て、復興を遂げた昭和の時代を顧み、国の将来に思いをいたす。',_年,4,29).
国民の祝日(憲法記念日,'憲法記念日 五月三日 日本国憲法 の施行を記念し、国の成長を期する。',_年,5,3).
国民の祝日(みどりの日,'みどりの日 五月四日 自然に親しむとともにその恩恵に感謝し、豊かな心をはぐくむ。',_年,5,4).
国民の祝日(こどもの日,'こどもの日 五月五日 こどもの人格を重んじ、こどもの幸福をはかるとともに、母に感謝する。',_年,5,5).
国民の祝日(海の日,'海の日 七月の第三月曜日 海の恩恵に感謝するとともに、海洋国日本の繁栄を願う。',_年,7,_日) :-
        第三月曜日(_年,7,_日).
国民の祝日(敬老の日,'敬老の日 九月の第三月曜日 多年にわたり社会につくしてきた老人を敬愛し、長寿を祝う。',_年,9,_日) :-
        第三月曜日(_年,9,_日).
国民の祝日(秋分の日,'秋分の日 秋分日 祖先をうやまい、なくなつた人々をしのぶ。',_年,_月,_日) :-
        秋分の日(_年,_月,_日).
国民の祝日(体育の日,'体育の日 十月の第二月曜日 スポーツにしたしみ、健康な心身をつちかう。',_年,10,_日) :-
        第二月曜日(_年,10,_日).
国民の祝日(文化の日,'文化の日 十一月三日 自由と平和を愛し、文化をすすめる。',_年,11,3).
国民の祝日(勤労感謝の日,'勤労感謝の日 十一月二十三日 勤労をたつとび、生産を祝い、国民たがいに感謝しあう。',_年,11,23).
国民の祝日(天皇誕生日,'天皇誕生日 十二月二十三日 天皇の誕生日を祝う。',_年,12,23).

祝日が日曜の場合は翌日以降の平日を振替休日にする(_振替休日の年,_振替休日の月,_日) :-
        国民の祝日(_,_,_振替休日の年,_振替休日の月,_日),
        'Zellerの公式を用いて曜日を得る'(_振替休日の年,_振替休日の月,_日,_,日曜),
        振替休日(_振替休日の年,_振替休日の月,_日,_振替休日の日).

振替休日(_振替休日の年,_振替休日の月,_日,_振替休日の日) :-
        between(_日,31,_振替休日の日),
        \+(国民の祝日(_,_,_振替休日の年,_振替休日の月,_振替休日の日)),
        'Zellerの公式を用いて曜日を得る'(_振替休日の年,_振替休日の月,_振替休日の日,_,_曜日),
        \+(_曜日=日曜),!.

'国民の休日とは、国民の祝日にはさまれた平日を指す'(_国民の休日の年,_国民の休日の月,_国民の休日の日) :-
        前日(_国民の休日の年,_国民の休日の月,_国民の休日の日,_前日の年,_前日の月,_前日の日),
        翌日(_国民の休日の年,_国民の休日の月,_国民の休日の日,_翌日の年,_翌日の月,_翌日の日),
        国民の祝日(_,_,_前日の年,_前日の月,_前日の日),
        国民の祝日(_,_,_翌日の年,_翌日の月,_翌日の日),!.

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

第三月曜日(_年,_月,_日) :-
        between(15,21,_日),
        'Zellerの公式を用いて曜日を得る'(_年,_月,_日,_,月曜).

第二月曜日(_年,_月,_日) :-
        between(8,14,_日),
        'Zellerの公式を用いて曜日を得る'(_年,_月,_日,_,月曜).

春分の日(_年,_月,_日) :-
        '「春分の日」および「秋分の日」の日付は、前年2月1日の官報で発表される。'(_年,_月,_日),!.
春分の日(_年,3,_日) :-
        '国立天文台「暦象年表」に基づき',
        _年 >= 1980,
        _年 =< 2099,
        _日 is truncate(20.8431+0.242194*(_年-1980)-truncate((_年-1980)/4)),!.
春分の日(_年,3,23).

秋分の日(_年,_月,_日) :-
        '「春分の日」および「秋分の日」の日付は、前年2月1日の官報で発表される。'(_年,_月,_日),!.
秋分の日(_年,9,_日) :-
        '国立天文台「暦象年表」に基づき',
        _年 >= 1980,
        _年 =< 2099,
        _日 is truncate(23.2488+0.242194*(_年-1980)-truncate((_年-1980)/4)),!.
秋分の日(_年,9,23).

建国記念日の日に関する政令(_年,2,11).

政令で定める.

'「春分の日」および「秋分の日」の日付は、前年2月1日の官報で発表される。'(_年,_月,_日) :-
        fail.

'国立天文台「暦象年表」に基づき'.

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

前日(_年,_月,_日,_前日の年,_前日の月,_前日の日) :-
        前日の月がわり調整(_年,_月,_日,_前日の年,_前日の月,_前日の日).

翌日(_年,_月,_日,_翌日の年,_翌日の月,_翌日の日) :-
        翌日の月がわり調整(_年,_月,_日,_翌日の年,_翌日の月,_翌日の日).

前日の月がわり調整(_整数年,1,1,_変更された整数年,12,31) :-
        _変更された整数年 は _整数年 - 1,!.
前日の月がわり調整(_整数年,_整数月,1,_整数年,_変更された整数月,31) :-
        member(_整数月,[2,4,6,8,9,11]),
        _変更された整数月 は _整数月 - 1,!.
前日の月がわり調整(_整数年,_整数月,1,_整数年,_変更された整数月,30) :-
        member(_整数月,[5,7,10,12]),
        _変更された整数月 は _整数月 - 1,!.
前日の月がわり調整(_整数年,3,1,_整数年,2,29) :-
        0 is _整数年 mod 4,!.
前日の月がわり調整(_整数年,3,1,_整数年,2,28) :-
        \+(0 is _整数年 mod 4),!.
前日の月がわり調整(_整数年,_整数月,_整数日,_整数年,_整数月,_変更された整数日) :-
        _変更された整数日 は _整数日 - 1,!.

翌日の月がわり調整(_整数年,12,31,_変更された整数年,1,1) :-
        _変更された整数年 は _整数年 + 1,!.
翌日の月がわり調整(_整数年,_整数月,30,_整数年,_変更された整数月,1) :-
        member(_整数月,[4,6,8,9,11]),
        _変更された整数月 は _整数月 + 1,!.
翌日の月がわり調整(_整数年,_整数月,31,_整数年,_変更された整数月,1) :-
        member(_整数月,[1,3,5,7,10]),
        _変更された整数月 は _整数月 + 1,!.
翌日の月がわり調整(_整数年,2,29,_整数年,3,1) :-
        0 is _整数年 mod 4,!.
翌日の月がわり調整(_整数年,2,28,_整数年,3,1) :-
        \+(うるう年(_整数年)),!.
翌日の月がわり調整(_整数年,_整数月,_整数日,_整数年,_整数月,_変更された整数日) :-
        _変更された整数日 は _整数日 + 1,!.

翌月(_年,12,_翌年,1) :-
        _翌年 is _年 + 1,!.
翌月(_年,_月,_年,_翌月) :-
        _翌月 is _月 + 1.

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

'Zellerの公式を用いて曜日を得る'(_年,1,_日,_曜日を表す値,_曜日) :-
        _年_1 is _年 - 1,
        'Zellerの公式を用いて曜日を得る'(_年_1,13,_日,_曜日を表す値,_曜日),!.
'Zellerの公式を用いて曜日を得る'(_年,2,_日,_曜日を表す値,_曜日) :-
        _年_1 is _年 - 1,
        'Zellerの公式を用いて曜日を得る'(_年_1,14,_日,_曜日を表す値,_曜日),!.
'Zellerの公式を用いて曜日を得る'(_年,_月,_日,_曜日を表す値,_曜日) :-
        _曜日を表す値 is (_年 + truncate(_年 / 4) - truncate(_年 / 100) + truncate(_年 / 400) + truncate((13 * _月 + 8) / 5) + _日) mod 7,
        曜日を表す値(_曜日を表す値,_曜日),!.

曜日を表す値(0,日曜).
曜日を表す値(1,月曜).
曜日を表す値(2,火曜).
曜日を表す値(3,水曜).
曜日を表す値(4,木曜).
曜日を表す値(5,金曜).
曜日を表す値(6,土曜).