lovef_16 2019-07-22 10:50 采纳率: 100%
浏览 290
已结题

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条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 5月5日

悬赏问题

  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法
  • ¥15 可否在不同线程中调用封装数据库操作的类
  • ¥15 微带串馈天线阵列每个阵元宽度计算