计算到工作日的时间
本文关键字:时间 工作日 计算 | 更新日期: 2023-09-27 18:22:17
如何计算到下一个工作日白天的时间
更具体地说,我想计算下周三14:00之前的分钟、小时和天数。
我怎么能那样做?
想冒险回答这个问题,但。。
如何计算到下一个工作日白天的时间?
如果你用这句话指的是周三,你可以用DayOfWeek
枚举将当前日期迭代到下周三,比如;
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)
重载是在.NET Framework 4.0版本中添加的。如果使用.NET 3.5或更低版本,则可以使用difference
的Days
、Hours
或Minutes
属性(或者可能是TotalXXX
属性)。
您可以尝试使用TimeSpan
DateTime t1 = ......;
DateTime t2 = ......;
TimeSpan ts = t1.Subtract(t2);
TimeSpan对象表示时间间隔(持续时间或经过的时间),其被测量为天、小时、分钟、秒和几分之一秒。时间跨度结构也可以用来表示一天中的时间,但前提是时间与特定日期无关。
您需要的是一个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
对象的属性来获得所需的内容。