[英]Waiting time between two given Times
我提出了一種在兩次之間的時間差所給定的時間內停止程序的方法。
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);
}
你有什么想法? 有更容易的方法嗎?
您的解決方案似乎很復雜,因此可能是錯誤的。
由於它看起來像是作業,所以我給您一個提示。 嘗試先以更簡單的度量單位轉換時間,然后取其差值。
例如。 將兩次時間都轉換為從一天開始算起的分鍾數,然后減去:
在代碼的其他部分,因為
(60-begin.getMinutes())
您將不得不從總數中減去60分鍾,因此該代碼將無法正常工作。 另外,您還需要另一對括號。 相反,請嘗試以下操作:
else{
Thread.sleep(((end.getMinutes()-begin.getMinutes())+(end.getHours()-begin.getHours())*60)*6000);
}
你有什么想法? 有更容易的方法嗎?
因為我假設您正在談論擴展java.util.Date
java.sql.Time
,所以我將使用getTime()
方法以毫秒為單位獲取時間:
Thread.sleep(end.getTime() - begin.getTime());
無需轉換。 使用不推薦使用的getHours()
或getMinutes()
方法的任何解決方案都將在夏令時過渡期間出現問題,因為小時數會跳躍。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.