2012-02-07 108 views
0

我有一個十進制值(64.17小時),需要將其轉換爲小時,分鐘和秒的時間戳,但小時值應該顯示64不是16.將十進制小時轉換爲HH:ii:ss大於24小時

還應不顯示微秒如此64.17將顯示爲

64:10:12

任何人都幫我在這?我也需要把它放在一個聚集函數(平均在這種情況下)

TimeSpan ts = new TimeSpan(); 
      ts.Add(TimeSpan.FromHours(ncr_time_lost)); 
      Console.WriteLine(ncr_time_lost + " = " + TimeSpan.FromHours(ncr_time_lost).ToString()); 

      return TimeSpan.FromHours(ncr_time_lost); 
+2

[Standard TimeSpan Format Strings](http://msdn.microsoft.com/zh-cn/library/ee372286.aspx)&[Custom TimeSpan Format Strings](http://msdn.microsoft.com/zh-cn/我/圖書館/ ee372287.aspx) – dtb 2012-02-07 16:58:32

回答

2

更新工作守則 添加以下代碼一部分報告

Public Function TimeSpanToString(source as Timespan) as String 
    Dim result As String 
    result = Convert.ToInt32(source.TotalHours).ToString() & ":" & source.Minutes.ToString() & ":" & source.Seconds 

    return result 
End Function 

下面是一個例子了答案:TimeSpan.FromHours Method

更新

static string TimeSpanToString(TimeSpan source) 
{ 
    string result = string.Format("{0}:{1}:{2}", 
     (int)source.TotalHours, 
     source.Minutes, 
     source.Seconds); 
    return result; 
} 

更新: 不知道它是否是正確的,但請嘗試以下 格式爲「64:10:12」,可以用下面的代碼來完成使用它從RDLC:

public class SomeClass 
{ 
    public TimeSpan Time { get; set; } 

    public string FormattedTime 
    { 
     get { return TimeSpanToString(Time); } 
    } 

    private static string TimeSpanToString(TimeSpan source) 
    { 
     // Code. 
    } 
} 

然後嘗試從報告"=Fields!FormattedDate.Value"得到它。

+0

這將如何用於報告中? – Neo 2012-02-08 09:44:11

+0

@Neo,請參閱更新。 – 2012-02-08 10:15:27

+0

謝謝Serge我是RDLC的新手,我只是把它放在報告代碼中,然後調用它?如果是這樣,它返回一個自定義代碼錯誤 – Neo 2012-02-08 10:21:32

4

爲什麼不直接使用TimeSpan結構?是的,它記錄了幾天,但也有一個TotalHours屬性,應該給你你想要的一切。

您還可以對TotalMilliseconds屬性執行任何平均計算。有關格式化TimeSpan的更多信息,請參閱here

+0

我的問題是格式化它的報告,不斷回來作爲一個錯誤!我在課堂上使用我剛剛添加到問題中的代碼創建了一個時間段,但是當我在報告中顯示時,它會返回#Error – Neo 2012-02-08 09:46:43

相關問題