代码改变世界

简单倒计时与DateTime.Subtract()

2006-11-11 14:35  Windie Chai  阅读(3333)  评论(0编辑  收藏

软件工程的老师布置了一个任务,一个网络环境的 Turbo C 考试系统, 要求界面上有倒计时,由此.

 

  1. 拖放一个 Label 和一个 Timer 到主界面上,设置 Timer 的 Interval 为1000.
  2. 添加一个全局变量用以表示40分钟(考试时间)以后的时间点.

    private DateTime endTime;

  3. 在窗口载入事件中设置 endTime 的具体值并且启用 Timer.

    private void Form1_Load(object sender, EventArgs e)
    {
    endTime
    = DateTime.Now.AddMinutes(40);
    timer1.Enabled 
    = true;
    }

  4. 在 Timer 的 Tick 事件中用 endTime 减去当前时间来获得剩余时间,籍此来实现倒计时.

    private void timer1_Tick(object sender, EventArgs e)
    {
    DateTime show 
    = start.Subtract(new TimeSpan(DateTime.Now.Ticks));
    label1.Text 
    = show.ToLongTimeString();
    }


注意这个方法: DateTime.Subtract() ,它有+1个重载:
DateTime Subtract(TimeSpan) 和 TimeSpan Subtract(DateTime ) , 当参数为 DateTime 类型时,返回值为 TimeSpan 类型,当参数为 TimeSpan 时,返回值为 DateTime 类型.