我的目標是計算兩個日期之間的差異,然後將該天數添加到原始開始日期。將兩個日期的差異添加到另一個日期,避免閏年
DateTime originalStart = new DateTime(2015, 1, 1);
DateTime newDate = originalStart.AddDays((endDate - startDate).TotalDays);
例如具有以下PARAMS:
原來的開始:1/1/2015
開始日期:2016年1月1日
結束日期:2017年1月1日
newDate應該是: 1/1/2016(開始和結束之間的區別是1年,所以然後我們將這一年添加到原始開始)
我的問題我如果閏年是endDate和startDate之間的日期差異的一部分,然後我去並將這些天添加到originalStart。我最終以newdate的日期爲1/2/2016。
任何想法如何我可以避免在這裏閏年,以確定1/1/2016和1/1/2017之間的差異是四捨五入的。我只想添加到originalStart一年,而不是因爲閏年的額外一天。
[只要檢查一年是否是一個閏年並採取適當的行動](https://msdn.microsoft.com/en-us/library/system.datetime.isleapyear(v = vs.110)的.aspx)。 – Equalsk
首先檢查任何開始或結束年份是否爲閏年。然後檢查2月29日是否在您的目標時間範圍內。如果是這樣,有一天減少。 –
什麼意思是「避免學習年」呢?如果時間跨度重疊兩個閏年,那麼期望的結果是什麼?但是如果將此時間跨度添加到originalStart,則只會重疊一個閏年? –