如何计算下一个工作日白天的时间? 更具体地说,我想计算下周三14:00的分钟,小时和天数。
我怎么能这样做?
答案 0 :(得分:2)
感觉喜欢冒险回答但是......
如何计算下一个工作日白天的时间?
如果你的意思是星期三这个句子,你可以用DayOfWeek
enumeration代替当前日期到下周三;
DateTime today = DateTime.Today;
while (today.DayOfWeek != DayOfWeek.Wednesday)
{
today = today.AddDays(1);
}
因为我现在在伊斯坦布尔 - 今天是星期三 - 这个代码今天返回,而不是7天后。
更具体地说,我想计算分钟,小时和天 直到下周三14:00。
然后,您可以将14
小时添加到今天,并在当前当地时间(DateTime.Now
)之间获得差异。
today = today.AddHours(14);
TimeSpan difference = DateTime.Now - today;
Console.WriteLine(difference.ToString("d\\.hh\\:mm"));
顺便说一下,这个TimeSpan.ToString(string)
overload添加了.NET Framework 4.0版本。如果您使用的是.NET 3.5或更低版本,则可以使用TotalXXX
的{{3}},Days
或Hours
属性(或difference
属性)。
答案 1 :(得分:1)
您需要的是TimeSpan
对象:
TimeSpan duration = nextWednesday - currentDate;
其中nextDay
和nextWednesday
是表示您感兴趣的日期的两个DateTime
个对象。
例如,currentDate
可以是DateTime.Now
。对于nextWednesday
,您需要更多内容:
var today = DateTime.Today;
var daysUntilWednesday = ((int) DayOfWeek.Wednesday - (int) today.DayOfWeek + 7) % 7;
var nextWednesday = today.AddDays(daysUntilWednesday);
var ts = new TimeSpan(14,0,0);
nextWednesday = nextWednesday.Date + ts;
完成后,您可以使用TimeSpan
对象的属性来获得所需的内容。
答案 2 :(得分:1)
您可以尝试使用TimeSpan
DateTime t1 = ......;
DateTime t2 = ......;
TimeSpan ts = t1.Subtract(t2);
TimeSpan对象表示时间间隔(持续时间或 经过时间),以正数或负数来衡量 天,小时,分钟,秒和分数秒。 TimeSpan 结构也可用于表示一天中的时间,但仅限于 时间与特定日期无关。