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
值才是零。当你增加了一秒钟,你就增加了一天的一小部分。