簡體   English   中英

兩個給定時間之間的等待時間

[英]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);
}   

你有什么想法? 有更容易的方法嗎?

您的解決方案似乎很復雜,因此可能是錯誤的。

由於它看起來像是作業,所以我給您一個提示。 嘗試先以更簡單的度量單位轉換時間,然后取其差值。

例如。 將兩次時間都轉換為從一天開始算起的分鍾數,然后減去:

  • 7.30-> 450
  • 8.10-> 490
  • 差異:490-450 = 40分鍾

在代碼的其他部分,因為

(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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM