名前 題名 ▼ takaさん > ▼ Mr.XRAYさん > > ▼ takaさんどうもです. > > > > > ほかの暦ソースから自動抽出して検証してみたのですが、間違いがありました。 > > > > あららっ.お手数おかけしました. > > さて...っと... > > 未検証部分の大部分が比較用にもってきたデータの間違いでした。 > > 問題の部分だけ抜粋しました > > 1966/2/11 期待値[False] 実際の値[True] > 1979/9/23 期待値[False] 実際の値[True] > 1995/7/20 期待値[False] 実際の値[True] > 2017/12/23 期待値[True] 実際の値[False] > > procedure TForm1.Button2Click(Sender: TObject); > const bstr : array[Boolean] of string = ('False', 'True'); > procedure check(ADate : TDateTime; ExpectedRes : boolean); > var b: boolean; > name : string; > begin > b := IsSpecialHoliday(ADate, name); > if (b <> ExpectedRes) then > Memo1.Lines.Add(FormatDateTime('yyyy/m/d', ADate) > + Format(' 期待値[%s] 実際の値[%s]', > [ bstr[ExpectedRes], bstr[b] ])); > end; > begin > // 間違い検証用 > check(EncodeDate(1966,2,11), False); // 建国記念の日 1967- > check(EncodeDate(1979,9,23), False); > check(EncodeDate(1979,9,24), True); // 秋分の日 1979/9/24 > check(EncodeDate(1995,7,20), False); // 海の日 1996- > check(EncodeDate(2017,12,23), True); // 天皇誕生日 > end; GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link