我想確定現在給出的最接近時間點和原始時間點。這工作正常如下:獲取NOW和閏年原始日期的最接近可能日期
var originalPointInTime = new DateTime(2016, 3, 29);
var now = new DateTime(2017, 2, 3);
var closestDay1 = new DateTime
(
now.Year,
originalPointInTime.Month,
originalPointInTime.Day,
originalPointInTime.Hour,
originalPointInTime.Minute,
originalPointInTime.Second,
originalPointInTime.Millisecond
);
但是,如果我及時用閏年來看它的確不是:
var leapYearPointInTime = new DateTime(2016, 2, 29);
var closestDay2 = new DateTime
(
now.Year,
leapYearPointInTime.Month,
leapYearPointInTime.Day,
leapYearPointInTime.Hour,
leapYearPointInTime.Minute,
leapYearPointInTime.Second,
leapYearPointInTime.Millisecond
);
有沒有一種簡單的方法來得到這個閏年工作?我知道:
DateTime.IsLeapYear
並可以寫一些令人費解的代碼,但也許有一個簡單的方法來實現上述?
這將是閏年例如,對於closestDay2 2017年2月28日。問題在於2017年不是閏年 - 因此使用29個原因異常。 – cs0815 2014-11-23 17:55:58
如果您使用AddDays(-1),則您的代碼將起作用。謝謝。在.net中實現這一點似乎仍然很複雜,你不覺得嗎? – cs0815 2014-11-23 17:58:10
更正了一個錯誤。由於DateTime是一個值類型,您需要保存更新的值。是的,它看起來有點亂... – Benj 2014-11-23 18:10:41