我有多个时区,我想倒数一下。我不知道怎么做。 例如;
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();
}
这正是我想要做的,但是如何在一个以上的约会中使用它呢?
例如
- 日期=> 05:30(剩余时间)
- 日期=> 02:30(剩余时间)
- 日期=> 01:30(剩余时间)
当计算20-30个日期时,我想返回并减少计算的日期。 ;
- 计算日期=> 05:30 => 05:29
- 计算日期=> 02:30 => 02:29
- 计算日期=> 01:30 => 01:29
我在等待您的帮助。
这是一个WinForm应用程序。我试图通过一个类(对象)做到这一点。我打算立即将结果显示给用户。 例如
房间1:剩余时间=>天:1 /小时:2 /分钟:10
房间2:剩余时间=>白天:0 /小时5 /分钟:30
答案 0 :(得分:0)
似乎您有一个获胜表格应用程序(如果我错了,请纠正我)。您正在做的是将所有逻辑放入您的UI中,这使其无法很好地重用。 而是尝试创建一个新的类(对象),并使您的UI对此进行响应。告诉我您是否需要更详细的答案