Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 计算时差并继续将时差添加到标签_C#_Visual Studio 2010_Datetime_Timespan - Fatal编程技术网

C# 计算时差并继续将时差添加到标签

C# 计算时差并继续将时差添加到标签,c#,visual-studio-2010,datetime,timespan,C#,Visual Studio 2010,Datetime,Timespan,我正在编写一个程序,计算两个给定时间之间的差值。使用button1事件处理程序计算两次之间的差异,并显示在标签中,如下图所示的windows窗体布局所示 这是我的界面: 我的代码: 我希望我的问题是清楚的。我尽了最大努力,但没能成功。我总是得到错误的答案: public Form1() { InitializeComponent(); } DateTime t1 = new DateTime(0, 11, 0);

我正在编写一个程序,计算两个给定时间之间的差值。使用button1事件处理程序计算两次之间的差异,并显示在标签中,如下图所示的windows窗体布局所示

这是我的界面:

我的代码:

我希望我的问题是清楚的。我尽了最大努力,但没能成功。我总是得到错误的答案:

 public Form1()
        {
            InitializeComponent();
        }

        DateTime t1 = new DateTime(0, 11, 0);
        DateTime t2 = new DateTime(0, 16, 30);
        DateTime Dif = new DateTime(0, 0, 0);

        private void button1_Click(object sender, EventArgs e)
        {

            Dif = t1 - t2;
            Dif = Dif + DateTime.Parse(label1.Text);
            label1.Text = Dif.ToString();
        }

您需要在两个不同的时间获取时间才能看到显著的差异,您可以再添加两个按钮来启动时间和结束计时器。IMO在这方面更准确,在开始按钮单击时开始,在结束按钮单击时结束

起跑表

秒表

在这里您将获得时间间隔


不清楚您要做什么,但无法使用该值初始化DateTime

尝试使用时间跨度

    TimeSpan t1 = new TimeSpan(0, 11, 0);
    TimeSpan t2 = new TimeSpan(0, 16, 30);
    TimeSpan Dif = (label1.Tag == null ? new TimeSpan(0, 0, 0) : label1.Tag as TimeSpan);

    Dif = Dif + (t2 - t1);

    label1.Text = Dif.ToString();
    label1.Tag = Dif;

我想这应该行得通:

 public Form1()
        {
            InitializeComponent();
        }

        TimeSpan t1 = new TimeSpan(0, 11, 0);
        TimeSpan t2 = new TimeSpan(0, 16, 30);

        private void button1_Click(object sender, EventArgs e)
        {
            TimeSpan dif = t2 - t1;
            label1.Text = dif.ToString();
        }

您只需要使用timeSpan类型减去两个dateTime! 下面是一个我没有编译此代码的小示例:

DateTime TimeDate1 = DateTime.now;
Thread.Sleep(10000);
DateTime TimeDate2 = DateTime.now;
TimeSpan dateTimeResult = TimeDate2 - TimeDate1;

结果应该是10秒

您得到了什么以及您期望得到什么?是否应该
t1-t2
导致
TimeSpan
对象,并且在尝试将其分配给
DateTime
对象时是否应该出错?你希望从新的日期时间(0,16,30)中得到什么?我的时间是静态的简单时间不是秒表是一个小时计算器,就像本教程中的rotaI,但不是两个日期时间之间的差会导致时间跨度,不是一个新的datetime对象,但我需要通过将新的差值添加到已计算的值来不断增加标签值。我认为我的问题没有被正确理解。我要做的就是计算我在标签上放置的时间的差值,并通过将其增加相同的值来不断将该差值添加到标签上值仅在日期时间值1和值2中输入您的时间。使用timeSpan值减去前两个值
    TimeSpan t1 = new TimeSpan(0, 11, 0);
    TimeSpan t2 = new TimeSpan(0, 16, 30);
    TimeSpan Dif = (label1.Tag == null ? new TimeSpan(0, 0, 0) : label1.Tag as TimeSpan);

    Dif = Dif + (t2 - t1);

    label1.Text = Dif.ToString();
    label1.Tag = Dif;
 public Form1()
        {
            InitializeComponent();
        }

        TimeSpan t1 = new TimeSpan(0, 11, 0);
        TimeSpan t2 = new TimeSpan(0, 16, 30);

        private void button1_Click(object sender, EventArgs e)
        {
            TimeSpan dif = t2 - t1;
            label1.Text = dif.ToString();
        }
DateTime TimeDate1 = DateTime.now;
Thread.Sleep(10000);
DateTime TimeDate2 = DateTime.now;
TimeSpan dateTimeResult = TimeDate2 - TimeDate1;