我有一个单元测试,其中预期结果是 DateTime 并设置如下:
var expectedResult = DateTime.Today.AddMonths(3).AddMonths(3);
Run Code Online (Sandbox Code Playgroud)
之后我有一个函数可以为日期添加季度:
DateTime.AddMonths(3 * numberOfTimes);
Run Code Online (Sandbox Code Playgroud)
numberOfTimes在本例中是 2。
结果因日期而异。今天是 31/01/2023,预期结果是 30/07/2023,函数结果是 31/07/2023。
我预计结果会相同,因为从开始日期算起 6 个月应该是相同的天数。我很好奇为什么会发生这种情况。现在,我通过在预期结果部分中执行 3 * numberOfTimes 解决了该问题。
只是出于好奇为什么会发生这种情况?