我提出了一种方法来停止程序一段时间给出的时间。
Time end = ...
Time begin =....
if (end.getHours() == begin.getHours()) {
Thread.sleep((end.getMinutes()-begin.getMinutes())*60000);
} else {
Thread.sleep(((60-begin.getMinutes())+ (end.getMinutes())+(end.getHours()-begin.getHours())*60)*60000);
}
你怎么看?有更简单的方法吗?
答案 0 :(得分:1)
你的解决方案似乎很复杂,因此可能是错误的。
因为它看起来像家庭作业,所以我只给你一个提示。尝试首先以更简单的度量单位转换时间,然后区分它。
EG。从一天开始以分钟数转换两次,然后减去:
答案 1 :(得分:0)
在代码的else部分,因为你有
(60-begin.getMinutes())
你必须从总数中减去60分钟,所以代码不会像这样工作。此外,您还需要另外一对括号。相反,试试这个:
else{
Thread.sleep(((end.getMinutes()-begin.getMinutes())+(end.getHours()-begin.getHours())*60)*6000);
}
答案 2 :(得分:0)
你怎么看?有更简单的方法吗?
由于我假设您正在讨论扩展java.sql.Time
的{{1}},我会使用java.util.Date
方法以毫秒计算时间:
getTime()
无需转换。使用已弃用的Thread.sleep(end.getTime() - begin.getTime());
或getHours()
方法的任何解决方案都会在夏令时转换时出错,因为小时数会跳转。