The incrementally calling `Window::Globalization::Calendar::AddMonths` resulted in a negative value for `GetDifferenceInDays` which was then assigned to an unsigned variable `daysDiff`. One example of the issue when running the calculator in UTC+2 was the difference between July 31st and December 30th. The initial guess was 4 months which then landed on November 30th. This date was stored and then in the loop incremeted by one month. This then landed precisely on the end date December 30th. After the loop the final value is then used July 31st + 5 months which results in the 31st of December. The resulting difference of -1 days is then assigned to the unsigned value `daysDiff`. This commit makes the minimal changes to remedy this bug. It makes sure to only ever call `AddMonths` with the same starting date instead of incrementally to different dates. fixes #552 |
||
---|---|---|
.. | ||
build | ||
CalcManager | ||
Calculator | ||
CalculatorUITests | ||
CalculatorUnitTests | ||
CalcViewModel | ||
Calculator.sln | ||
CMakeLists.txt | ||
nuget.config | ||
Settings.XamlStyler |