C# - 知道时间

时间:2014-01-11 10:10:02

标签: c# math time timer

这是我的代码:

IdleTime = System.Environment.TickCount - LastInput.dwTime;
int hour = ((IdleTime + 500) / 86400000);
int min = ((IdleTime + 500) / 60000) - (hour * 60);
int sec = ((IdleTime + 500) / 1000) - (min * 60);

我在跟踪空闲时间的计时器中得到了一个空闲计时器

秒工作和分钟工作,但我不确定它是否会工作一小时达到24我认为它可能会在我身上发出错误86400000毫秒是一天我有秒和最小数据来自像sec这样的上一次是从min获取数据。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

我建议你使用TimeSpan类型以避免自己做数学运算:

int milliseconds = Environment.TickCount - LastInput.dwTime;
TimeSpan idleTime = TimeSpan.FromMilliseconds(milliseconds + 500);
int hour = (int) idleTime.TotalHours;
int minutes = idleTime.Minutes;
int seconds = idleTime.Seconds;

答案 1 :(得分:1)

我会说

IdleTime = System.Environment.TickCount - LastInput.dwTime;
int hours = IdleTime / 3600000;
int minutes = IdleTime / 60000 - hour * 60;
int seconds = IdleTime / 1000 - min * 60;

我不确定你为何从IdleTime减去500。