このディレクトリの索引

% % Zellerの公式 % :- op(450,xfx,が),op(500,xfy,であり),op(600,xfx,ならば),op(450,xfx,は). 'Zellerの公式'(年 が Y であり 月 が M であり 日 が D ならば 曜日を表す値 は (Y + Y // 4 - Y // 100 + Y // 400 + ((( 13 * M ) + 8 ) // 5 ) + D ) mod 7). 曜日計算(_年,_月,_日,_曜日) :- 'Zellerの公式を用いて曜日を得る'(_年,_月,_日,_曜日). 'Zellerの公式を用いて曜日を得る'(_年,_月,_日,_曜日) :- 'Zellerの公式を用いて曜日を表す値と曜日を得る'(_年,_月,_日,_,_曜日). 'Zellerの公式を用いて曜日を表す値と曜日を得る'(_年,_月,_日,_曜日を表す値,_曜日) :- 'Zellerの公式を用いて曜日を表す値を得る'(_年,_月,_日,_曜日を表す値), 'Zellerの公式で曜日を表す値と曜日'(_曜日を表す値,_曜日). 'Zellerの公式を用いて曜日を表す値を得る'(_年,_月,_日,_曜日を表す値) :- 'Zellerの公式では1月と2月はそれぞれ前年の13月と14月に変換して計算する'(_年,_月,_日,_曜日を表す値). 'Zellerの公式を用いて曜日を表す値を得る'(_年,_月,_日,_曜日を表す値) :- '3月から14月まではZellerの公式をそのまま適用して曜日を表す値を得る'(_年,_月,_日,_曜日を表す値). 'Zellerの公式では1月と2月はそれぞれ前年の13月と14月に変換して計算する'(_年,_月,_日,_曜日を表す値) :- '1月と2月はそれぞれ前年の13月と14月に変換して'(_年,_月,_年_1,_月_2), 'Zellerの公式を用いて曜日を表す値を得る'(_年_1,_月_2,_日,_曜日を表す値). '1月と2月はそれぞれ前年の13月と14月に変換して'(_年,1,_前年,13) :- succ(_前年,_年). '1月と2月はそれぞれ前年の13月と14月に変換して'(_年,2,_前年,14) :- succ(_前年,_年). '3月から14月まではZellerの公式をそのまま適用して曜日を表す値を得る'(_年,_月,_日,_曜日を表す値) :- '3月から14月までは'(_月), 'Zellerの公式をそのまま適用して曜日を表す値を得る'(_年,_月,_日,_曜日を表す値). '3月から14月までは'(_月) :- between(3,14,_月). 'Zellerの公式をそのまま適用して曜日を表す値を得る'(_年,_月,_日,_曜日を表す値) :- 'Zellerの公式'(年 が _年 であり 月 が _月 であり 日 が _日 ならば 曜日を表す値 は _Zellerの公式), _曜日を表す値 is _Zellerの公式. 'Zellerの公式で曜日を表す値と曜日'(0,日曜). 'Zellerの公式で曜日を表す値と曜日'(1,月曜). 'Zellerの公式で曜日を表す値と曜日'(2,火曜). 'Zellerの公式で曜日を表す値と曜日'(3,水曜). 'Zellerの公式で曜日を表す値と曜日'(4,木曜). 'Zellerの公式で曜日を表す値と曜日'(5,金曜). 'Zellerの公式で曜日を表す値と曜日'(6,土曜).