当倒计时计时器结束时,将其重置为另一个日期

本文关键字:另一个 日期 计时器 倒计时 结束 | 更新日期: 2023-09-27 18:22:11

好的,所以我想做的是当倒计时结束时,这意味着达到结束时间。我在2天内完成了这项工作,我想重置并再添加7天,如果可能的话,继续这样做。我试过使用

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

但这给了我一个错误"赋值的左侧必须是变量、属性或索引器",并使用.ToString()方法将ts转换为字符串,但仍然不起作用!所有代码都取自这里,我想在那里发表评论,但我是一个新用户。提前谢谢,我想我已经涵盖了所有内容。请在投票前提出任何要求!

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();
    }
}
}

当倒计时计时器结束时,将其重置为另一个日期

有两个问题:

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

不能将TimeSpanìnt进行比较。使用TimeSpanTotalDays属性来获取一个数字。或者直接使用参数。

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

if(endTime <= DateTime.Now)
{
}

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