Timespan-Day如何仅持续8小时?

cpt*_*eye 4 c# timespan

我在几分钟内保存了一段时间,想要输出"1天5小时30分钟".目前我将分钟添加到Timespan并执行以下操作:

TimeSpan ts = new TimeSpan(0,0,1800, 0);
Response.Write(ts.Days + "day(s) " + ts.Hours + " hour(s)" + ts.Minutes + " minutes");
Run Code Online (Sandbox Code Playgroud)

但现在我只对一天的工作时间感兴趣.因此,当TimeSpan的持续时间为27小时时,它不应创建输出"1天3小时".我想要"3天3小时".

使用Timespan对象可能有一种简单的方法吗?是否可以更改TimeSpan的默认行为?或者我是否必须编写自己的自定义Timespan-Class?

Thx cpt.oneeye

Blu*_*kMN 10

你能简单地使用:

(int)(ts.TotalHours / 8)
Run Code Online (Sandbox Code Playgroud)

而不是ts.Days?然后用

(((int)ts.TotalHours) % 8)
Run Code Online (Sandbox Code Playgroud)

而不是ts.Hours.


Ste*_*ger 6

你需要实现这样的事情:

TimeSpan workday = new TimeSpan(8, 0, 0);
int workdays = ts.Ticks / workday.Ticks
TimeSpan rest = new TimeSpan(ts.Ticks % workday.Ticks)
Response.Write(workdays  + "workday(s) and" + rest.ToString());
Run Code Online (Sandbox Code Playgroud)

会写类似的东西

"3 workday(s) and 3:32"
Run Code Online (Sandbox Code Playgroud)