これはなに? Microsoft の DATE 型のドキュメントの内容が思いがけなさ過ぎて変な声がでるぐらいだったので、この驚きを可視化してシェアしようと思って書いた記事。 その文書 下記リンクがその文書。 びっくりポイントは 日付は、1899 年 12 月 30 日の真夜中を 0 として始まる、整数の増分で表されます。 時間の値は、数値の小数部分の絶対値で表されます。 日付値の整数部分は符号付きとして扱われ、小数部分は符号なしとして扱われる の部分。(強調引用者) 計算して可視化する 文書だとよくわからないので、実際に計算してみる。 #include <iostream> #include <ATLComTime.h> int main() { for (int i = -48; i <= 48; ++i) { auto d = COleDateTime(1899, 12, 30, 0,
![Windows の DATE 型 のとても思いがけない仕様 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/2078a5f92b912da3584c8dfa294034795b4c33b7/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fcdn.qiita.com%252Fassets%252Fpublic%252Farticle-ogp-background-9f5428127621718a910c8b63951390ad.png%3Fixlib%3Drb-4.0.0%26w%3D1200%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTkxNiZoPTMzNiZ0eHQ9V2luZG93cyUyMCVFMyU4MSVBRSUyMERBVEUlMjAlRTUlOUUlOEIlMjAlRTMlODElQUUlRTMlODElQTglRTMlODElQTYlRTMlODIlODIlRTYlODAlOUQlRTMlODElODQlRTMlODElOEMlRTMlODElOTElRTMlODElQUElRTMlODElODQlRTQlQkIlOTUlRTYlQTclOTgmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT01NiZ0eHQtY2xpcD1lbGxpcHNpcyZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPWVkMzVlZjQxNjI1MTYwOTM5ZTkyYTQxNDkyNjI0N2Fi%26mark-x%3D142%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTcxNiZ0eHQ9JTQwTmFiZXRhbmkmdHh0LWNvbG9yPSUyMzIxMjEyMSZ0eHQtZm9udD1IaXJhZ2lubyUyMFNhbnMlMjBXNiZ0eHQtc2l6ZT0zMiZ0eHQtYWxpZ249bGVmdCUyQ3RvcCZzPTBkYjUwMWJiZTU2ZTAxOGQyYjFjZGJkNjk2YWRkMjQw%26blend-x%3D142%26blend-y%3D491%26blend-mode%3Dnormal%26s%3D501d6244c3a6b7c76ca19db65e711742)