2013-11-02 33 views
-2

我有我的一天從00:00/11/2013開始,它在23:59結束,因爲新的一天是在00:00 03/Nov/2013 - 數學23:59 - 00:00我得到23:59,這意味着我每天輸1分鐘。 我是否需要每次加1分鐘以獲得24:00結果。 如果是這樣,我該如何處理這個問題:23:59因爲新的一天開始和結束23:59?我每天失去一分鐘,我的一天是23:59而不是24

有時點擊幾下,用1分鐘是給我

Opt1 clock start 12:30 end 12:30 = 0 min 
Opt2 clock start 12:30 end 12:30 = 0 min 
Opt1 clock start 12:30 end 12:30 = 0 min 
Opt2 clock start 12:30 end 12:31 = 1 min 

只要它是好的,但我不知道是否「時鐘開始23:59結束23:59」的實際完成工作,或者是一個錯誤。 如果這是一個錯誤,那麼0分鐘就好了,但如果不是錯誤,那麼我會輸1分鐘。

我在一個小計時器上工作,我找不到解決方案。

也許我需要用戶的額外確認嗎?

但它會自動切換到新的一天,當它達到23:59:59所以我得到23:59作爲前一天的最後一點和新的一天從00:00開始。

如何得到正確的時間? 同樣是下午11:59和中午12:00 - 同樣的一天在下午11:59結束,因爲新的開始於上午12:00,對不對?

那麼如何補償1分鐘呢?

UPDATE:

時間格式是 的SimpleDateFormat foutputFormat =新的SimpleDateFormat( 「DD/MM/YYYY HH:MM」);

解析爲日期,然後做簡單的數學

mint+= (finishd[i].getTime()/60000) - (startd[i].getTime()/60000); 

////System.out.println(mint); 
int h=(int)mint/60; 
int m=(int)mint-(h*60); 
////System.out.println("Min: " +mint); 
String totaltime = h + "h"+":" + m+"min"; 
////System.out.println("H: " + h + "Min: " + m); 

問題是,當我有:開始01/03/2004 00:00結束01/03/2004 23:59。第二天從02/03/2004 00:00開始。 我得到23小時:59分鐘的工作時間,而不是24 - 一整天我使用SQL數據庫來保存和讀取數據。數據格式「dd/MM/yyyy HH:mm」;

幾乎有:d 我的最後一個問題是,我需要做這樣的數學題:

pause 10:20 - 10:40 = 20 min OK 
working 10:40 - 12:42 = 2h:2min OK 
pause 12:42 - 12:57 = 15 min OK 
working 12:57 - 12:57 = 0 OK 
pause 12:57 - 12:57 = 0 OK 
working 12:57 - 16:00 = 3h:3min OK 
Total work 5h:5min/pause 35min OK 

末快到23:59問題:

working 22:00 - 23:59 = 1h:59m missing 24! 1min lost 

NEW DAY working 00:00 - 04:30 = 4h:30min OK 

那麼如何修復最後23點59分,因爲它可以是 23:59 - 23:59暫停= 0分鐘好吧

或者它可以是

day1 23:59 - day2 00:20 = 21min ? 

但SQL可以存儲信息只作爲00-59min 00-23h

然後,如果我需要爲這一天的總的工作和總暫停: 我可以總結的所有記錄的那一天當我暫停+工作時,我總共得到23:59h

+0

雖然這被標記爲Java,但語法確實不是。我們到底在看什麼? –

+0

放下玻璃杯,然後上牀睡覺。明天 - 當你再次閱讀這篇文章時 - 你的問題將得到解決 - 看似神奇。 – OldCurmudgeon

+0

如果你正在失去時間,你可能會哭泣的天使有問題。只是不要眨眼! –

回答

3

您的方式想法有關於此問題的問題。

每天有60 * 24分鐘= 1440。第一個是00:00。最後一個是23:59。

minutes(23:59) - minutes(00:00)不是1440的原因是,這不是計算一天中分鐘數的正確方法!正確的方法minutes(day 2 00:00) - minutes(day 1 00:00)

這是小學數學課。

+0

他將以23:59分鐘的增量爲你解決這個問題。你不必付錢,只需返回一個「除以零」的錯誤: ) –

+0

謝謝!這是一條路:D –

1

這部分是關於「包容性/排他性」或封閉/開放邊界,部分是關於減法。

一天從零時開始。同一天2400時完成 - 這是一個端點您可以測量,而不是您可以開始的時間。

因此,一天正確的24小時。

您可以近似23:55,23:59,23:59,23:59:59,23:59:59.999或近似您想要的近似但不正確接近它。但實際正確的終點將始終是2400小時,即第二天的0000小時。

不要將「結束日期」時間存儲爲23:59,錯誤地使用不準確的近似值而不是使基本面正確只會導致更多問題。

當計算的「工作時間」的時間,一個簡單的規則:

  1. 回合的開始時間到最近的前一分鐘。
  2. 結束時間輪到下一分鐘。

這將確保記錄的工作持續時間始終> = 1分鐘,除非兩個開始&結束幾乎完全相同的毫秒。無論如何,確保你的代碼在0時間內工作 - 它可以在0時充電,沒關係,它不應該崩潰。在出現循環&圖形

同樣的問題 - 一個很好的循環,從開始它的下限(含)而結束低於它的上限(不包括)。這給出了hi-lo = count的屬性。

類似的像素 - 我們可以最好地將每個小像素可視化爲網格線之間的彩色正方形。我們測量網格線,並在它們之間填充像素。因此,從網格線0到網格線1的矩形只填充這些邊界之間的一個像素,並且正確給出寬度1.

相關問題