作成日: 2024/01/23 最終更新日: 2024/01/23
文書種別
制限事項
詳細
Excelでは日付を「1900/1/1」を「1」とするシリアル値で保存されますが、SpreadJSではWindowsのOLEオートメーション日付に基づいた値で処理します。
【DateTime.ToOADate メソッド (System) | Microsoft Learn】
https://learn.microsoft.com/ja-jp/dotnet/api/system.datetime.tooadate?view=net-8.0
OLEオートメーション日付では、「1899/12/30」を「0」としているため、例えば、「1900/1/1」はOLEオートメーション日付では 「2」となり、Excelでは「1900/1/2」 となります。
また、Excelでは1900年がうるう年として処理される問題があります。
【Excel では、1900 年が閏年であると誤って想定されています - Microsoft 365 Apps | Microsoft Learn】
https://learn.microsoft.com/ja-jp/office/troubleshoot/excel/wrongly-assumes-1900-is-leap-year
この問題により、結果的に1900/3/1以降の日付については、OLEオートメーション日付とExcelのシリアル値の誤差は解消されますが、1900/2/28以前の日付については、SpreadJSとExcelでの日付の表示や計算結果が異なります。