2012-06-25 48 views
0

我有數據表中的時間字段包含不同員工的數據,如12:75(12小時和75分鐘),而我想要它像13:15分鐘。我想在一段時間內得到總數。我怎樣才能在VB.NET 2010中得到這樣的結果?請幫助想要獲得時間總和

+1

你確定它不是12,75這意味着12h45m?什麼是OverTime屬性的類型? –

+0

它就像12:75意味着12小時和75分鐘,但它應該顯示像13:15。 75分鐘必須在60分鐘內平均1小時,這個小時將增加12分鐘,因此它將顯示13:15(13小時15分鐘)。它是數據庫中的一個字符串字段。 –

+0

聽起來像你需要兩個字段來保存兩個單獨的值。結合不同的數據在同一領域打破了第一範式,是一個非常...令人不安的設計 –

回答

0

答案很簡單。以分鐘爲單位並將其除以60.數量(不含小數部分)是小時數,並將其添加到小時數中。你乘以60的小數部分就是你的分鐘數。爲了在VB中編寫代碼,我們需要知道OverTime屬性的類型,但我也認爲你應該自己編寫這些代碼,因爲它非常簡單。當您遇到特定問題時,您可以回來。

+0

THanks Michal你提供了正確的想法來管理這項任務。我很感謝你。 –

+0

問題仍然是一個問題,您提供的方法僅適用於24小時。當員工花費50小時75分鐘時間時,應顯示51小時15分鐘。 –

+0

這是不可能的。它可以在任何小時數和分鐘數的情況下工作,除非您還想與天一起工作。但你只提到幾小時和幾分鐘。發佈您的代碼,以便我們可以看到問題所在。 –

0

您可以使用

DateTime.AddMinutes 

功能,您將指定75,它會給你正確的時間。

,或者您可以使用

var ts = new TimeSpan(12, 75, 0);//h,m,s 

代碼的試片會,

 var ts = new TimeSpan(25, 75, 0); 
     var total = ts.Days*24 + ts.Hours + ":" + ts.Minutes; 
+0

你能描述什麼是0開始和0結束? –

+0

它只是一天的一部分,實際上,如果你看看http://msdn.microsoft.com/en-us/library/system.timespan.aspx,第一個參數是白天的一部分。那麼我只是看文檔,發現我不必提供那一天的一部分。 – paragy

+0

非常感謝,你給出正確的想法 –