存在しない 1900-02-29(シリアル値 60)
Excel が 1900 年を閏年と誤って扱うため、前後の 59 と 61 は変換できても 60 は存在しない日付になる境界の例です。
入力
シリアル値(1 行に 1 つ)
59 60 61
日付システム
1900 システム(Windows の Excel の既定)
結果
エラー 0 件・警告 1 件・情報 1 件
指摘(エラー・警告・情報)
- 情報 1 行目 59 は 1900-03-01 より前の日付です。Microsoft の説明では、Excel の WEEKDAY 関数はこの範囲の曜日を誤って返します(このツールの日付そのものは暦どおりです)。
- 警告 2 行目 シリアル値 60 は、Excel が 1900 年を閏年と誤って扱うために生じる「1900-02-29」で、暦には存在しない日付です(Microsoft の説明どおり)。前後の 59(1900-02-28)・61(1900-03-01)は変換できます。
| 日付システム | 1900 システム(1900-01-01 が 1) |
|---|---|
| 変換できた値 | 2 件 |
| 変換できなかった値 | 1 件 |
ISO 8601 形式の日付
| 行 | シリアル値 | ISO 8601 形式 |
|---|---|---|
| 1 | 59 | 1900-02-28 |
| 2 | 60 | (存在しない日付) |
| 3 | 61 | 1900-03-01 |
検算(この結果になる理由)
1 を 1900-01-01 と数えると 59 は 1900-02-28 です。60 は暦に存在しない 1900-02-29 なので変換せず警告し、61 は 1900-03-01 になります。1900-03-01 より前の 59 には曜日の注意が情報として付きます。
判定の根拠は仕様と根拠に、仕様の出典とともにまとめています。自分の入力で試すにはツールをお使いください。
このツールの制約
- Excel の表示形式(和暦・曜日・「2011/7/5」など)ではなく、シリアル値(数字)だけを変換します。日付の文字を貼り付けても変換できません。
- 1900-03-01 より前の日付について、Excel の WEEKDAY 関数の曜日は不正になります。このツールは暦どおりの日付を出すため、Excel の画面の曜日とは合わないことがあります。
- タイムゾーン・夏時間は扱いません。小数部は現地時刻の時分秒としてそのまま ISO 8601 の形で出します(末尾に Z やオフセットは付けません)。
- Excel for Mac など、どちらの日付システムのファイルかは中身から判定できません。出どころで選んでください。選び間違えると 4 年と 1 日ずれます。
ご利用にあたって
- 日付の起点と 1900 年の扱いは Microsoft の公開説明にもとづきます。上限の 9999-12-31 は ISO 8601 の 4 桁の年にそろえたこのツールの設定で、Excel 本体の上限を示すものではありません。
- 契約・会計などに使う日付は、変換結果を元の資料と見比べて確認してください。