lovef_16
2019-07-22 10:50
采纳率: 100%
浏览 262

c# datetime.tostring()异常问题求解。

1.winform 写了个进程监控,实机运行时发现如图1报异常。

按照图片中提示是timer2丢出,timer2作用仅是更新界面label中“监控已运行****”

timer2代码逻辑很简单:每隔1秒更新label。见代码片

private void Timer2_Tick(object sender,EventArgs e)
            {
            if(tb.ToString() == "0001/1/1 0:00:00")
                {
                }
            else
                {
                this.label1.Text = "监控已运行:" + (DateTime.Now - tb).ToString("g").Substring(0,11);
                }
            }

我理解下来,报错的意思是时间相减之后位数不够11位了,所以抛出异常,这个理解对么?

2.同时还问个问题:如图2
dt是datetime 未点button时未赋值,它在tostring()的时候咋还会有异常呢?能否指点一下。

新手轻喷!

谢谢

图1

图2

试试这么处理
Eeeeee

string str = null;
TimeSpan ts = starTime.Subtract(nowTime).Duration();
 str = ts.Days.ToString() + "天" + ts.Hours.ToString() + "小时" + ts.Minutes.ToString() + "分钟" + ts.Seconds.ToString() + "秒";
return str;
  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • threenewbee 2019-07-22 11:33
    已采纳

    两个时间相减,可以用TimeSpan,不要直接相减。

    评论
    解决 无用
    打赏 举报
  • 查看更多回答(1条)

相关推荐 更多相似问题