如何制作一个以上的倒数计时器? C#

时间:2018-07-07 20:01:19

标签: c# winforms datetime timer countdown

我有多个时区,我想倒数一下。我不知道怎么做。 例如;

public int Day {get; set;}
public int ReDay { get; set; }
public int ReHour { get; set; }
public int ReMinute { get; set; }
public int ReSeconds { get; set; }
public bool TimeStatus = false;
DateTime time2;
SqlComman com;
TimeSpan TS;
private void DecreaseTime(int Day)
{
    DateTime time1 = DateTime.Now;
    if (!TimeStatus)
    {
        time2 = time1.AddDays(Day);
        TimeStatus = true;
    }
    TS = time1 - time2;
    ReDay = TS.Days;
    ReHour = TS.Hours;
    ReMinute = TS.Minutes;
    ReSeconds = TS.Seconds;
    if(time1.Day==time2.Day && time1.Hour == time2.Hour && time1.Second == time2.Hour)
    {
       TimeStatus = false;
        //completed 
    }
}`
    private void FindDate()
    {
        try
        {
            if(DataBase.DateConnection.State == System.Data.ConnectionState.Open) { DataBase.DateConnection.Close(); }
            DataBase.DateConnection.Open();
            com = new SqlCommand("select roomNo,roomReTime from rooms", DataBase.DateConnection);
            var read = com.ExecuteReader();
            while (read.Read())
            {
                string RoomTimeRe = read["roomReTime"].ToString(); // e.g 02:01:00
                string[] Split = RoomTimeRe.Split(':');
                if(Split.Count() == 3)
                {
                   Day = int.Parse(Split[0]);
                   DecreaseTime(Day);
                }
            }
            com.Dispose();
            read.Close();
            DataBase.DateConnection.Close();
        }
        catch
        {

        }
    }
private void timer_tick(object sender, EventArgs e)
{
  FindDate();
}

这正是我想要做的,但是如何在一个以上的约会中使用它呢?

例如

  
      
  1. 日期=> 05:30(剩余时间)
  2.   
  3. 日期=> 02:30(剩余时间)
  4.   
  5. 日期=> 01:30(剩余时间)
  6.   

当计算20-30个日期时,我想返回并减少计算的日期。 ;

  
      
  1. 计算日期=> 05:30 => 05:29
  2.   
  3. 计算日期=> 02:30 => 02:29
  4.   
  5. 计算日期=> 01:30 => 01:29
  6.   

我在等待您的帮助。

更新

这是一个WinForm应用程序。我试图通过一个类(对象)做到这一点。我打算立即将结果显示给用户。 例如

  

房间1:剩余时间=>天:1 /小时:2 /分钟:10

     

房间2:剩余时间=>白天:0 /小时5 /分钟:30

1 个答案:

答案 0 :(得分:0)

似乎您有一个获胜表格应用程序(如果我错了,请纠正我)。您正在做的是将所有逻辑放入您的UI中,这使其无法很好地重用。 而是尝试创建一个新的类(对象),并使您的UI对此进行响应。告诉我您是否需要更详细的答案