计算到工作日的时间

本文关键字:时间 工作日 计算 | 更新日期: 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或更低版本,则可以使用differenceDaysHoursMinutes属性(或者可能是TotalXXX属性)。

您可以尝试使用TimeSpan

DateTime t1 = ......;
DateTime t2 = ......;
TimeSpan ts = t1.Subtract(t2);

TimeSpan对象表示时间间隔(持续时间或经过的时间),其被测量为天、小时、分钟、秒和几分之一秒。时间跨度结构也可以用来表示一天中的时间,但前提是时间与特定日期无关。

您需要的是一个TimeSpan对象:

TimeSpan duration = nextWednesday  - currentDate;

其中nextDaynextWednesday是两个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对象的属性来获得所需的内容。