我想确定现在给出的最接近的时间点和原始时间点。可以按以下方式正常工作:
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
);
但是,如果我使用a年的时间点,则不会:
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
);
有没有简单的方法可以使它在leap年工作?我知道:
DateTime.IsLeapYear
并可以编写一些令人费解的代码,但是也许有一种简单的方法可以实现以上目标?
我不确定我是否理解您的问题。什么是最近的时间点。是2月28日还是3月01日?我会这样做
DateTime now = DateTime.Now;
var leapYearPointInTime = new DateTime(2016, 2, 29);
if (DateTime.IsLeapYear(leapYearPointInTime.Year))
if (2 == leapYearPointInTime.Month)
if (29 == leapYearPointInTime.Day)
leapYearPointInTime = leapYearPointInTime.Add(new TimeSpan(-1, 0, 0, 0));
var closestDay2 = new DateTime
(
now.Year,
leapYearPointInTime.Month,
leapYearPointInTime.Day,
leapYearPointInTime.Hour,
leapYearPointInTime.Minute,
leapYearPointInTime.Second,
leapYearPointInTime.Millisecond
);
不知道这算是“卷积”,甚至算不上是最接近的时间点,但是我希望这会有所帮助
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句