当倒计时计时器结束时,将其重置为另一个日期
本文关键字:另一个 日期 计时器 倒计时 结束 | 更新日期: 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
进行比较。使用TimeSpan
的TotalDays
属性来获取一个数字。或者直接使用参数。
最后,您的程序可能没有完全达到endTime
。所以你应该允许一些宽容:
if(endTime <= DateTime.Now)
{
}
为了添加到Nico的答案中,endTime.Subtract(DateTime.Now)
返回一个具有TotalTimeUnit属性的TimeSpan
对象(而不是DateTime
)。