C#のDateTime型・TimeSpan型の加算関数(AddSeconds・AddDays等)は、1ms以下の値を扱わない模様

# まとめ(実測結果)
* ~~C#のDateTime型では、1ms以下の値を扱わない模様。~~
* ~~C#のTimeSpan型でも、1ms以下の値を扱わない模様。~~
　↓ 訂正
* 実測の結果、C#のDateTime型の加算関数(AddSeconds等)では、1ms以下の値を扱わない模様。
  * AddSeconds(1.0001)で0.1msの単位を追加しても、Tick値には反映されない。
* 実測の結果、C#のTimeSpan型でも加算関数(AddSeconds等)では、1ms以下の値を扱わない模様。

# テストコード
```C#:Program 2301-1 AddSecondsテスト.cs
using System;

namespace ConsoleApp1 {
    class Program {
        static void Main(string[] args) {
            /* 結果: 
C#のDateTime型では、1ms以下の値を扱わない模様。
AddSeconds(1.0001)で0.1msの単位を追加しても、Tick値には反映されない。

10,000,000[Tick/1s]
20,000,000[Tick/2s]
10,010,000[Tick/1.001s]
10,000,000[Tick/1.0001s]
10,000,000[Tick/1.000499s]
10,010,000[Tick/1.0005s]

864,000,000,000[Tick/1d]
1,728,000,000,000[Tick/2d]
864,000,010,000[Tick/1.00000001d]
864,000,000,000[Tick/1.000000001d]
*/

            var t1 = DateTime.Parse("2023/01/01");
            var t2 = t1.AddSeconds(1);
            Console.WriteLine($"{t2.Ticks - t1.Ticks:#,0}[Tick/1s]");

            t2 = t1.AddSeconds(2);
            Console.WriteLine($"{t2.Ticks - t1.Ticks:#,0}[Tick/2s]");

            t2 = t1.AddSeconds(1.001);
            Console.WriteLine($"{t2.Ticks - t1.Ticks:#,0}[Tick/1.001s]");

            t2 = t1.AddSeconds(1.0001);
            Console.WriteLine($"{t2.Ticks - t1.Ticks:#,0}[Tick/1.0001s]");

            t2 = t1.AddSeconds(1.000499);
            Console.WriteLine($"{t2.Ticks - t1.Ticks:#,0}[Tick/1.000499s]");

            t2 = t1.AddSeconds(1.0005);
            Console.WriteLine($"{t2.Ticks - t1.Ticks:#,0}[Tick/1.0005s]");


            t2 = t1.AddDays(1);
            Console.WriteLine($"{t2.Ticks - t1.Ticks:#,0}[Tick/1d]");

            t2 = t1.AddDays(2);
            Console.WriteLine($"{t2.Ticks - t1.Ticks:#,0}[Tick/2d]");

            t2 = t1.AddDays(1.00000001);
            Console.WriteLine($"{t2.Ticks - t1.Ticks:#,0}[Tick/1.00000001d]");

            t2 = t1.AddDays(1.000000001);
            Console.WriteLine($"{t2.Ticks - t1.Ticks:#,0}[Tick/1.000000001d]");

            /* 結果: 
C#TimeSpan型でも、1ms以下の値を扱わない模様。
AddSeconds(1.0001)で0.1msの単位を追加しても、Tick値には反映されない。

10,000,000[Tick/1s]
20,000,000[Tick/2s]
10,010,000[Tick/1.001s]
10,000,000[Tick/1.0001s]
10,000,000[Tick/1.000499s]
10,010,000[Tick/1.0005s]

864,000,000,000[Tick/1d]
1,728,000,000,000[Tick/2d]
864,000,010,000[Tick/1.00000001d]
864,000,000,000[Tick/1.000000001d]
*/

            t2 = t1.AddSeconds(1);
            Console.WriteLine($"{(t2 - t1).Ticks:#,0}[Tick/1s]");

            t2 = t1.AddSeconds(2);
            Console.WriteLine($"{(t2 - t1).Ticks:#,0}[Tick/2s]");

            t2 = t1.AddSeconds(1.001);
            Console.WriteLine($"{(t2 - t1).Ticks:#,0}[Tick/1.001s]");

            t2 = t1.AddSeconds(1.0001);
            Console.WriteLine($"{(t2 - t1).Ticks:#,0}[Tick/1.0001s]");

            t2 = t1.AddSeconds(1.000499);
            Console.WriteLine($"{(t2 - t1).Ticks:#,0}[Tick/1.000499s]");

            t2 = t1.AddSeconds(1.0005);
            Console.WriteLine($"{(t2 - t1).Ticks:#,0}[Tick/1.0005s]");


            t2 = t1.AddDays(1);
            Console.WriteLine($"{(t2 - t1).Ticks:#,0}[Tick/1d]");

            t2 = t1.AddDays(2);
            Console.WriteLine($"{(t2 - t1).Ticks:#,0}[Tick/2d]");

            t2 = t1.AddDays(1.00000001);
            Console.WriteLine($"{(t2 - t1).Ticks:#,0}[Tick/1.00000001d]");

            t2 = t1.AddDays(1.000000001);
            Console.WriteLine($"{(t2 - t1).Ticks:#,0}[Tick/1.000000001d]");
        }
    }
}
```

# 環境
Microsoft Visual Studio Community 2019 Version 16.11.22
VisualStudio.16.Release
Microsoft .NET Framework
Version 4.8.04084
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/606924/a80b2b96-ebec-1c6b-a5a2-700f34441206.png)