▼ 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;
|