プログラムを中心とした個人的なメモ用のブログです。 タイトルは迷走中。
内容の保証はできませんのであしからずご了承ください。

2019/03/29

[C#] DateTime, DateTimeOffset の最小単位

event_note2019/03/29 2:58

DateTime DateTimeOffset の最小単位は 100 ナノ秒だそうです。

この最小単位は Tick というプロパティで取得できます。
つまり、1Tick が 100 ナノ秒に相当します。

サンプルコード

var begin = DateTime.Today;
var end = DateTime.Today.AddDays(1).AddTicks(-1);

Console.WriteLine("[Begin] " + begin.ToString("yyyy/MM/dd HH:mm:ss:fffffff"));
Console.WriteLine("[End] " + end.ToString("yyyy/MM/dd HH:mm:ss:fffffff"));

実行結果

[Begin] 2019/03/29 00:00:00:0000000
[End] 2019/03/29 23:59:59:9999999

日時の範囲指定

上記を踏まえると、DateTime DateTimeOffset の比較において、以下は等価と言えます。

var begin = DateTime.Today;
var end = DateTime.Today.AddDays(1);

if(begin < AnyDate && AnyDate < end)
{
    // Do Something
}
var begin = DateTime.Today.AddTicks(1);
var end = DateTime.Today.AddDays(1).AddTicks(-1);

if(begin <= AnyDate && AnyDate <= end)
{
    // Do Something
}