直到周末的剩余时间结束了

本文关键字:时间 结束了 余时间 周末 | 更新日期: 2023-09-27 17:58:24

我想计算距离周末结束还有多少秒(比如说直到周日晚上11.59)。当在周末调用操作时,它需要返回TimeSpan。我需要每周这样做,所以我不能像那样设置"硬编码"的结束日期

new DateTime(2014, 04, 17, 23, 12, 33);

如何设置正确的结束日期来计算从现在起剩余的秒数?

直到周末的剩余时间结束了

尝试:

public static void Main(string[] args) {
    //Your code goes here
    TimeSpan span = (Next(DateTime.Now, DayOfWeek.Sunday).Date + new TimeSpan(23, 59, 00)).Subtract(DateTime.Now);          
    Console.WriteLine(span.TotalSeconds);
}
public static DateTime Next(DateTime from, DayOfWeek dayOfWeek) {
   int start = (int) from.DayOfWeek;
   int target = (int) dayOfWeek;
   if (target <= start) target += 7;
     return from.AddDays(target - start);
}

这是演示

使用DayOfWeek属性查找截至周末的剩余天数,并通过将它们添加到StartDate来创建新的DayTime对象。

DateTime endDate = startDate.Date.AddDays(7 - (int)startDate.DayOfWeek)