C# 中时间跨度的意外结果
unexpected results from timespan in C#
TimeSpan ts = DateTime.Now.Subtract(DateTime.Parse(reader1["cur_time"].ToString()));
int a = ts.Minutes;
MessageBox.Show(a.ToString());
MessageBox.Show(ts.Milliseconds.ToString());
减去时间得到 8 分钟,这是正确的。但以毫秒为单位转换这 8 分钟并不能给出正确答案。如果我将 8 分钟转换为毫秒,它应该是 480000 毫秒,但上面的代码给了我 708 个答案。
您正在读取 TimeSpan
的毫秒部分,而不是跨度代表的总毫秒数。
改变
ts.Milliseconds.ToString();
到
ts.TotalMilliseconds.ToString();
它可能包括一些额外的毫秒数,具体取决于 DateTime.Now
是什么和解析的 cur_time。
TimeSpan ts = DateTime.Now.Subtract(DateTime.Parse(reader1["cur_time"].ToString()));
int a = ts.Minutes;
MessageBox.Show(a.ToString());
MessageBox.Show(ts.Milliseconds.ToString());
减去时间得到 8 分钟,这是正确的。但以毫秒为单位转换这 8 分钟并不能给出正确答案。如果我将 8 分钟转换为毫秒,它应该是 480000 毫秒,但上面的代码给了我 708 个答案。
您正在读取 TimeSpan
的毫秒部分,而不是跨度代表的总毫秒数。
改变
ts.Milliseconds.ToString();
到
ts.TotalMilliseconds.ToString();
它可能包括一些额外的毫秒数,具体取决于 DateTime.Now
是什么和解析的 cur_time。