C# Timespan功能将分钟转换为8小时工作日

C# Timespan功能将分钟转换为8小时工作日,c#,.net,timespan,C#,.net,Timespan,需要在C#应用程序中计数,SLA中的分钟数以格式显示: N working days, N working hours, N working minutes 当前代码仅显示小时:分钟格式: TimeSpan spWorkMin = TimeSpan.FromMinutes(12534); string workHours = string.Format("{0}:{1:00}", (int)spWorkMin.TotalHours, spWorkMin.Minutes); Console.Wr

需要在C#应用程序中计数,SLA中的分钟数以格式显示:

N working days, N working hours, N working minutes
当前代码仅显示小时:分钟格式:

TimeSpan spWorkMin = TimeSpan.FromMinutes(12534);
string workHours = string.Format("{0}:{1:00}", (int)spWorkMin.TotalHours, spWorkMin.Minutes);
Console.WriteLine(workHours);

以下是以天、小时、分钟为单位显示时间跨度的代码:

TimeSpan spWorkMin = TimeSpan.FromMinutes(12534);
string workHours = $"{spWorkMin.Days} working days, {spWorkMin.Hours} working hours, {spWorkMin.Minutes} working minutes";
Console.WriteLine(workHours);

我不确定你想要实现什么,但在平常的每一天,你都有3个工作日

var numberOfDays = minutes/60/24;
var numberOfBusinessDays = numberOfDays/3;
var numberOfBusinessHours = (numberOfBusinessDays - Math.Truncate(numberOfBusinessDays))*24;
var numberOfBusinessMinutes = (numberOfBusinessHours - Math.Truncate(numberOfBusinessHours)*60;
然后可以从所有结果中截断小数部分

int numberOfBusinessDaysToInt = Math.Truncate(numberOfBusinessDays);
int numberOfBusinessHoursToInt = Math.Truncate(numberOfBusinessHours);
int numberOfBusinessMinutesToInt = Math.Truncate(numberOfBusinessMinutes);

这段代码为什么不使用TimeSpan.Days是不可能猜测的。使用小时数。