将倒计时到日期计时器重置为另一个日期

时间:2015-11-17 14:28:18

标签: c# datetime countdown timespan

好吧我想做的是当倒计时结束时意味着到达结束时间我把它放在2天内,我想重置并再添加7天并且如果可能的话继续这样做。我尝试过使用

if(endTime.Subtract(DateTime.Now) = 0)
        {

        }

但是这给了我一个错误“赋值的左侧必须是变量,属性或索引器”,并且还使用.ToString()方法将ts转换为字符串,但仍然无效!所有代码都取自here我想在那里发表评论,但我是新用户。在此先感谢我,我认为我已经覆盖了所有事情,在请求之前请求任何事情!

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace TV_Series_New_Episodes
{
public partial class Flash : Form
{
    DateTime endTime = new DateTime(2015, 11 ,19, 14 ,30, 0);

    public Flash()
    {
        InitializeComponent();
    }

    private void ct_Tick(object sender, EventArgs e)
    {
        TimeSpan ts = endTime.Subtract(DateTime.Now);
        ctlb.Text = ts.ToString("d' Days 'h' Hours 'm' Minutes 's' Seconds'");
        if(endTime.Subtract(DateTime.Now) = 0)
        {

        }
    }

    private void Flash_Load(object sender, EventArgs e)
    {


        ct.Interval= 500;
        ct.Tick += new EventHandler(ct_Tick);
        TimeSpan ts = endTime.Subtract(DateTime.Now);
        ctlb.Text = ts.ToString("d' Days 'h' Hours 'm' Minutes 's' Seconds'");
        ct.Start();
    }
}
}

2 个答案:

答案 0 :(得分:1)

有两个问题:

=是赋值运算符。如果您想进行比较,请使用==

您无法将TimeSpanìnt进行比较。使用TimeSpan的{​​{1}}属性来获取数字。或者直接使用参数。

最后,您的程序可能无法完全达到TotalDays。所以你应该允许一些宽容:

endTime

答案 1 :(得分:1)

为了添加Nico的答案,endTime.Subtract(DateTime.Now)返回一个TimeSpan对象(不是DateTime),它具有TotalTimeUnit属性。