C# 将十进制小时转换为大于24小时的HH:ii:ss

C# 将十进制小时转换为大于24小时的HH:ii:ss,c#,rdlc,C#,Rdlc,我有一个十进制值(64.17小时),需要将其转换为小时、分钟和秒的时间戳,但小时值应该显示64而不是16 它也不应显示微秒,因此64.17将显示为 64:10:12 有人帮我吗?我还需要把它放在一个聚合函数中(本例中为平均值) 为什么不直接使用这个结构呢?是的,它可以记录天数,但也有TotalHours属性,可以为您提供所需的一切 您还可以对TotalMillicles属性执行任何平均计算 有关设置TimeSpan格式的更多信息,请参阅。为什么不使用该结构?是的,它可以记录天数,但也有Total

我有一个十进制值(64.17小时),需要将其转换为小时、分钟和秒的时间戳,但小时值应该显示64而不是16

它也不应显示微秒,因此64.17将显示为

64:10:12

有人帮我吗?我还需要把它放在一个聚合函数中(本例中为平均值)

为什么不直接使用这个结构呢?是的,它可以记录天数,但也有TotalHours属性,可以为您提供所需的一切

您还可以对TotalMillicles属性执行任何平均计算

有关设置TimeSpan格式的更多信息,请参阅。

为什么不使用该结构?是的,它可以记录天数,但也有TotalHours属性,可以为您提供所需的一切

您还可以对TotalMillicles属性执行任何平均计算


有关设置时间跨度格式的更多信息,请参阅。

更新工作代码 将以下内容添加到报告的代码部分

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
下面是一个例子的答案:

更新: 格式“64:10:12”可通过以下代码完成:

static string TimeSpanToString(TimeSpan source)
{
    string result = string.Format("{0}:{1}:{2}",
        (int)source.TotalHours,
        source.Minutes,
        source.Seconds);
    return result;
}
更新: 不知道它是否正确,但请尝试从RDLC使用它:

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

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

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

然后尝试从报告中获取它,作为
“=字段!FormattedDate.Value”
更新工作代码 将以下内容添加到报告的代码部分

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
下面是一个例子的答案:

更新: 格式“64:10:12”可通过以下代码完成:

static string TimeSpanToString(TimeSpan source)
{
    string result = string.Format("{0}:{1}:{2}",
        (int)source.TotalHours,
        source.Minutes,
        source.Seconds);
    return result;
}
更新: 不知道它是否正确,但请尝试从RDLC使用它:

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

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

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

然后尝试从报告中获取它,作为
“=字段!FormattedDate.Value”

&这将如何在报告中使用?谢谢Serge,我是RDLC的新手,我是否将其放入报告代码并调用它?如果是这样,它会返回一个自定义代码error@Neo,实际上,我没有用RDLC测试代码,只是一个草图(见更新后)。谢谢Serge,你的回答为我指明了正确的方向,看起来RDLC代码是VB:(我已将工作代码添加到您的帖子中,并将其标记为正确答案该如何在报告中使用?谢谢Serge,我是RDLC的新手,我是否将其放入报告代码并调用它?如果是,它会返回自定义代码。)error@Neo,实际上,我没有用RDLC测试代码,只是一个草图(参见更新后的内容).谢谢Serge,你的回答为我指明了正确的方向,RDLC代码似乎是VB:(我已将工作代码添加到您的帖子中,并将其标记为正确答案。我的问题是在报告中对其进行格式设置,这一直是一个错误!我在课堂上使用刚才添加到问题中的代码创建了一个时间跨度,但当我在报告中显示它时,它会返回#错误我的问题是在报告中对其进行格式设置,这是一个错误。)一直以错误的形式返回!我在类中使用刚才添加到问题中的代码创建了timespan,但当我在报告中显示它时,返回的是#错误