标签: timespan

如何显示在控制台中运行的时间?

C#我需要显示进程正在运行的时间,显示秒数增加,通常:00:00:01、00:00:02、00:00:03.....等。

我正在使用此代码:

var stopwatch = new System.Diagnostics.Stopwatch();
stopwatch.Start();

//here is doing my process
stopwatch.Stop();
Run Code Online (Sandbox Code Playgroud)

当进程停止时,我显示时间 ELAPSED,如下:

TimeSpan ts = stopwatch.Elapsed;
Run Code Online (Sandbox Code Playgroud)

...和这个:

{0} minute(s)"+ " {1} second(s)", ts.Minutes, ts.Seconds, ts.Milliseconds/10.
Run Code Online (Sandbox Code Playgroud)

这显示经过的总时间,但我需要显示在控制台中运行的时间。

我怎样才能做到这一点?

c# timespan console-application

4
推荐指数
1
解决办法
1万
查看次数

如何解析 Newtonsoft JSON 中的 TimeSpan 值

我想解析 JSON 字符串并使用该token.Type属性来检测 type 的值JTokenType.TimeSpan

我不知道如何在我的输入字符串中表达 TimeSpan,一切似乎都被解释为 JTokenType.String。

var timeSpanString = TimeSpan.FromHours(1).ToString();
testString = string.Format(@"{{""Value"": ""{0}"" }}", timeSpanString);
var statObject = JObject.Parse(testString);
JToken token = statObject["Value"];
var tokenValue = token.ToString();
var tokenType = token.Type; // JTokenType.String
Run Code Online (Sandbox Code Playgroud)

我什至试过:

JValue jValue = new JValue("test");
jValue.Value = TimeSpan.FromHours(1);
bool isTimeSpan = jValue.Type == JTokenType.TimeSpan; // true!
testString = string.Format(@"{{""Value"": ""{0}"" }}", jValue.Value);
var statObject = JObject.Parse(testString);
JToken token = statObject["Value"];
var tokenValue = token.ToString();
var tokenType = token.Type; // …
Run Code Online (Sandbox Code Playgroud)

.net c# json timespan json.net

4
推荐指数
1
解决办法
8158
查看次数

无法解析 TimeSpan,因为至少有一个数字组件超出范围或包含太多数字

以下代码给了我上面标题所示的错误:

TimeSpan my_hours = new TimeSpan();
my_hours = TimeSpan.Parse("00:00");
my_hours += TimeSpan.Parse("25:07"); //this line throws error
Run Code Online (Sandbox Code Playgroud)

就在最后一行运行之前,my_hours 的值为 4.01:33:00。我该如何解决这个错误?

基本上,这段代码在 for 循环中运行,并且值“25:07”不断变化,并添加到 my_hours 中,并一直这样做,直到当 my_hours 的当前值为 4.01:33 时,它尝试添加此值“25:07” :00 并抛出错误。

c# timespan

4
推荐指数
1
解决办法
7768
查看次数

c# 检查时间跨度范围是否在时间跨度范围和多少小时之间

假设我有 3 个时间范围:

07:00 - 18:00  
18:00 - 23:00  
23:00 - 07:00  
Run Code Online (Sandbox Code Playgroud)

和代码:

public class TimeShift
{
   public TimeSpan Start { get; set; }
   public TimeSpan End { get; set; }
}

List<TimeShift> shifts = new List<TimeShift>();
Run Code Online (Sandbox Code Playgroud)

如何检查列表中的每个项目是否在上述 3 个范围之间以及多少小时?

例如其中之一TimeShift

public class TimeShift
{
   public TimeSpan Start { get; set; }
   public TimeSpan End { get; set; }
}

List<TimeShift> shifts = new List<TimeShift>();
Run Code Online (Sandbox Code Playgroud)

那么这意味着 16.5 小时。

对于上面的例子:

Start: 07:00
End:   23:30
Run Code Online (Sandbox Code Playgroud)

c# datetime timespan date-range

4
推荐指数
1
解决办法
4008
查看次数

时间跨度四舍五入到小数点后 3 位

对于以下行:

decimal sec = (decimal)TimeSpan.FromMilliseconds(.8).TotalSeconds;
Run Code Online (Sandbox Code Playgroud)

我期望 sec = 0.0008 ,但它被四舍五入到 3 个小数位并给出结果 0.001 ,任何解决方法。

.net c# timespan

4
推荐指数
1
解决办法
87
查看次数

2次跨度之间的时差无法返回预期数据

我在下面创建了2个时间跨度:

TimeSpan currentTs = TimeSpan.FromSeconds(43995); //12:13:15
TimeSpan towTime = TimeSpan.FromSeconds(303072); //12:11:12
Run Code Online (Sandbox Code Playgroud)

我试图找到以分钟为单位的差异(经过我传递的秒数,看来它们是在不同的日子)。我希望相差2分钟左右,但实际上,我得到-57分钟。

int timeDifference = (int)currentTs.Subtract(towTime).Minutes;
Run Code Online (Sandbox Code Playgroud)

有人可以解释我在做什么错吗?

c# timespan

3
推荐指数
1
解决办法
1万
查看次数

TimeSpan.ParseExact给出错误

我创造了TimeSpan这种方式

TimeSpan ts = new Timespan();

// Do some addition and subtraction on it
Run Code Online (Sandbox Code Playgroud)

然后我使用它将它保存到文件中

string.Format("{0}:{1}:{2}:{3}", ts.Hours, ts.Minutes, ts.Seconds, ts.MilliSeconds);
Run Code Online (Sandbox Code Playgroud)

从它返回的各种值都是这样的

0:0:4:410
0:0:1:425
0:0:1:802
0:0:1:509
0:0:1:674
0:0:1:628
0:0:2:76
Run Code Online (Sandbox Code Playgroud)

如何将其转换回TimeSpan.

我在用

TimeSpan.ParseExact("0:0:4:410", "h:m:s:fff", null); 
Run Code Online (Sandbox Code Playgroud)

但它给了我错误 Input String is not in correct format.

我哪里错了?

c# timespan

3
推荐指数
1
解决办法
1984
查看次数

两次之间的时间间隔为一小时

我有两次喜欢

Time A:09:00 AM
Run Code Online (Sandbox Code Playgroud)

并且Time B:06:00 PM 我想时间A与时间B中的总时间和用时1小时EG的时间跨度表现出来:

09:00 AM

10:00 AM

11:00 AM

12:00 PM

upto

06:00 PM
Run Code Online (Sandbox Code Playgroud)

c# datetime timespan

3
推荐指数
1
解决办法
1287
查看次数

Timespan数据类型C#

我有一个时间跨度值,它是两个日期时间值的差异.它是这样的:

myvalue = {41870.01:44:22.8365404} 
Run Code Online (Sandbox Code Playgroud)

我还有一个代表另一个时间跨度值的字符串,它是这样的:

ttime= "23:55" // which means 23 minutes and 55 seconds
Run Code Online (Sandbox Code Playgroud)

我想检查myvalue是否小于ttime.这是我的尝试:

if(myvalue < Timespan.Parse(ttime))
//do this
else
//do that
Run Code Online (Sandbox Code Playgroud)

我的方法是否足够正确?我还需要做点什么吗?谢谢.

c# datetime timespan

3
推荐指数
1
解决办法
1258
查看次数

TimeSpan加法和减法

我需要添加2个从文本框中取出的时间范围:mm:ss.fff

例如:
00:59,800+ 00:02,300- 结果应该是01:02.100,但我有01:02,060.

我想我的转换问题如下:

string Sum1 = "00:" + "00:59,800";
Sum1 = Sum1.Replace(',', '.');
double FSum1 = TimeSpan.Parse(Sum1).TotalSeconds;

string Sum2 = "00:" + "00:02,300";
Sum2 = Sum2.Replace(',', '.');
double FSum2 = TimeSpan.Parse(Sum2).TotalSeconds;

double SumResult = FSum1 + FSum2;

maskedTextBoxSumResult.Text = TimeSpan.FromMinutes(SumResult).ToString(@"hh\:mm\:ss\.fff");
Run Code Online (Sandbox Code Playgroud)

另外,我需要对减法做同样的事情.

谢谢你的帮助.

c# timespan addition

3
推荐指数
1
解决办法
162
查看次数