フェアフィールドの公式
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/02/19 20:01 UTC 版)
「ツェラーの公式」の記事における「フェアフィールドの公式」の解説
1年1月1日(0年13月1日) ~ y 年 m 月 d の日数を求める。ただし、m = 1, 2 の場合は、y = y - 1, m = m + 12とし、1年を、3月1日 ~ 14月28日(閏年は29日)と再定義する。 1年1月1日(0年13月1日)を含めた、y 年 m 月 d 日迄の日数は以下の通り。 1年1月1日(0年13月1日) ~ 1年2月28日(0年14月28日) ・・・ 31 + 28 (日) 1年3月1日 ~ ( y - 1 ) 年14月末日(この時点では閏年は考慮しない) ・・・ 365 ( y - 1 ) (日) 1年1月1日(0年13月1日) ~ ( y - 1 ) 年14月末日の閏年の回数 ・・・ [ ( 1 + ( y - 1 ) ) / 4 ) ] - [ ( 1 + ( y - 1 ) ) / 100 ) ] + [ ( 1 + ( y - 1 ) ) / 400 ) ] = [ y / 4 ] - [ y / 100 ] + [ y / 400 ] (日) y年3月1日 ~ y 年 ( m - 1 ) 月末日 ・・・ [ 306 ( m + 1 ) / 10 ] - 122 (日) (以下表を参照) y 年 m 月1日 ~ y 年 m 月 d 日 ・・・ d (日) 当月(m)前月(m-1)日数(Σ)[306(m+1)/10]-1223 0 0 43 31 31 54 61 61 65 92 92 76 122 122 87 153 153 98 184 184 109 214 214 1110 245 245 1211 275 275 1312 306 306 1413 337 337 ※3月1日 ~ ( m - 1 )月末日迄の日数と、[ 306 ( m + 1 ) / 10 ] - 122 の値は完全に一致している。 従って、1年1月1日 ~ y 年 m 月 d 日の日数は、上記全てを合算した、 31 + 28 + 365 ( y - 1 ) + [ y / 4 ] - [ y / 100 ] + [ y / 400 ] + [ 306 ( m + 1 ) / 10 ] - 122 + d = 365 y + ⌊ y 4 ⌋ − ⌊ y 100 ⌋ + ⌊ y 400 ⌋ + ⌊ 306 ( m + 1 ) 10 ⌋ + d − 428 {\displaystyle =365y+\left\lfloor {\frac {y}{4}}\right\rfloor -\left\lfloor {\frac {y}{100}}\right\rfloor +\left\lfloor {\frac {y}{400}}\right\rfloor +\left\lfloor {\frac {306(m+1)}{10}}\right\rfloor +d-428} ・・・ 【※】/ Fairfield の公式 となる。 曜日は7日間で循環しているので、上記【※】式の 7 の剰余を求めることで、曜日が判明する。即ち、 h = ( 365 y + ⌊ y 4 ⌋ − ⌊ y 100 ⌋ + ⌊ y 400 ⌋ + ⌊ 306 ( m + 1 ) 10 ⌋ + d − 428 ) mod 7 {\displaystyle h=\left(365y+\left\lfloor {\frac {y}{4}}\right\rfloor -\left\lfloor {\frac {y}{100}}\right\rfloor +\left\lfloor {\frac {y}{400}}\right\rfloor +\left\lfloor {\frac {306(m+1)}{10}}\right\rfloor +d-428\right)\mod 7} ・・・ 【I】 である。 このとき、h のとり得る値は 0, 1, 2, 3, 4, 5, 6 で、順に日曜日、月曜日、火曜日、水曜日、木曜日、金曜日、土曜日を表す (現行のグレゴリオ暦は、1582年10月15日に、この日を金曜日であるとして施行されたがこの日を起点に、遡ってグレゴリオ暦を適用すると、1年1月1日は月曜日となるため h の値が表す曜日がこのような並びになる)
※この「フェアフィールドの公式」の解説は、「ツェラーの公式」の解説の一部です。
「フェアフィールドの公式」を含む「ツェラーの公式」の記事については、「ツェラーの公式」の概要を参照ください。
- フェアフィールドの公式のページへのリンク