将 1 秒添加到 TimeSpan 不起作用
Adding 1 second to TimeSpan not working
我有这个代码:
private void TimePlayedTimer_Start()
{
timePlayedStr = "00:00:00";
timePlayed = new DispatcherTimer();
timePlayed.Tick += timePlayedTimer_Tick;
timePlayed.Interval = new TimeSpan(0, 0, 0, 1);
timePlayed.Start();
}
void timePlayedTimer_Tick(object sender, object e)
{
TimeSpan ts = TimeSpan.Parse(timePlayedStr);
ts = ts.Add(TimeSpan.FromSeconds(1));
timePlayedStr = ts.ToString();
}
当我逐行调试时,TimeSpan ts
等于 "00:00:00"
但在行 ts = ts.Add(TimeSpan.FromSeconds(1));
之后它会有一些属性 TotalDays = 2.313232439423
, TotalHours = 0.000555555
, TotalMilliseconds = 2000
而不是向 TotalSeconds
属性添加 1
我得到了这些返回的 属性 值。
有谁知道我做错了什么吗?
PS:我只是想在每个 tick
之后向 TimeSpan
添加一秒钟
我认为您误读了 TotalDays 值。当我 运行 类似的代码时,我得到 TotalDays
的 1.15740740740741E-05
值。这可能是有道理的,一秒钟可能大约是一天的一小部分。
Total*
属性表示 TimeSpan
的整体值,而不是 TimeSpan
.
每个部分的离散值
Days
、Hours
和 Minutes
都将为 0,但 Total*
属性将代表整个值,即使这些部分是小数.
TotalDays
的值实际上是 2.31481481481481E-05
,即 0.0000231481481481481
。
您获得的值正是第二次报价时的预期值,您没有设法调试第一个报价,您只是在解释错误的值。
TotalDays
、TotalHours
和 TotalMilliseconds
属性显示 TimeSpan
中转换为该特定度量的总值,它们不会一起形成一个值。
2 秒等于 2000 毫秒,等于 0.000555555 小时。
如果要查看值中的组件,应查看 Days
、Hours
、Minutes
、Seconds
和 Milliseconds
特性。在那里你会发现 Seconds
属性 是 2
而其他的都是零。
我有这个代码:
private void TimePlayedTimer_Start()
{
timePlayedStr = "00:00:00";
timePlayed = new DispatcherTimer();
timePlayed.Tick += timePlayedTimer_Tick;
timePlayed.Interval = new TimeSpan(0, 0, 0, 1);
timePlayed.Start();
}
void timePlayedTimer_Tick(object sender, object e)
{
TimeSpan ts = TimeSpan.Parse(timePlayedStr);
ts = ts.Add(TimeSpan.FromSeconds(1));
timePlayedStr = ts.ToString();
}
当我逐行调试时,TimeSpan ts
等于 "00:00:00"
但在行 ts = ts.Add(TimeSpan.FromSeconds(1));
之后它会有一些属性 TotalDays = 2.313232439423
, TotalHours = 0.000555555
, TotalMilliseconds = 2000
而不是向 TotalSeconds
属性添加 1
我得到了这些返回的 属性 值。
有谁知道我做错了什么吗?
PS:我只是想在每个 tick
TimeSpan
添加一秒钟
我认为您误读了 TotalDays 值。当我 运行 类似的代码时,我得到 TotalDays
的 1.15740740740741E-05
值。这可能是有道理的,一秒钟可能大约是一天的一小部分。
Total*
属性表示 TimeSpan
的整体值,而不是 TimeSpan
.
Days
、Hours
和 Minutes
都将为 0,但 Total*
属性将代表整个值,即使这些部分是小数.
TotalDays
的值实际上是 2.31481481481481E-05
,即 0.0000231481481481481
。
您获得的值正是第二次报价时的预期值,您没有设法调试第一个报价,您只是在解释错误的值。
TotalDays
、TotalHours
和 TotalMilliseconds
属性显示 TimeSpan
中转换为该特定度量的总值,它们不会一起形成一个值。
2 秒等于 2000 毫秒,等于 0.000555555 小时。
如果要查看值中的组件,应查看 Days
、Hours
、Minutes
、Seconds
和 Milliseconds
特性。在那里你会发现 Seconds
属性 是 2
而其他的都是零。