C# 向TimeSpan添加1秒不工作

C# 向TimeSpan添加1秒不工作,c#,timer,win-universal-app,C#,Timer,Win Universal App,我有以下代码: 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 tim

我有以下代码:

 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
totalmillizes=2000
,而不是在
TotalSeconds
属性中添加
1
,我将返回这些属性值

有人知道我做错了什么吗


注:我只是想在每次勾选后在
时间间隔中增加一秒钟,我想你误读了TotalDays值。当我运行类似的代码时,我会得到我的
TotalDays
1.15740741E-05
。这可能是有道理的,一秒钟大概就是一天的那一小部分

Total*
属性表示
TimeSpan
的总体值,而不是
TimeSpan
每个部分的离散值


Days
Hours
Minutes
都将是0,但是
Total*
属性将代表整个值,即使这些部分是小数。
TotalDays
的值实际上是
2.31481481E-05
,即
0.0000231481481

您得到的值正是第二次勾选时所期望的值,您没有调试第一次勾选,您只是错误地解释了值

TotalDays
TotalHours
totalmillizes
属性显示转换为特定度量值的
TimeSpan
中的总值,它们不会一起形成一个值

2秒与2000毫秒相同,与0.000555555小时相同


如果要查看值中的组件,应查看
小时
分钟
毫秒
属性。在那里你会发现
Seconds
属性是
2
,所有其他属性都是零。

无法复制,请确保你注意到白天的指数部分应该是
1.1574074074e-05
,但毫秒部分应该是
1000
@Habib我已经再次调试过了,我得到了与你相同的值。。当然我在加1秒,所以我应该得到一个
TotalSecond
值1?但是,我还是实例化了一个新的
TimeSpan
当然
TotalDays
应该等于0?@KTOV:当
TimeSpan
值为
00:00时,
TotalDays
值才是零。当你增加了一秒钟,你就增加了一天的一小部分。