Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在.NET中将小时转换为分钟_C#_.net_Xaml_Time_String Formatting - Fatal编程技术网

C# 在.NET中将小时转换为分钟

C# 在.NET中将小时转换为分钟,c#,.net,xaml,time,string-formatting,C#,.net,Xaml,Time,String Formatting,我有一个时间跨度2h 30分钟22秒。但我需要以150min 22秒格式绑定到UI的时间。这怎么可能?任何可用的内置函数或格式?由于您需要总分钟数,您可以使用多重绑定 <TextBlock> <TextBlock.Text> <MultiBinding StringFormat="{}{0}min {1}sec"> <Binding Path="YourTimeSpan.TotalMinutes" Conv

我有一个时间跨度
2h 30分钟22秒
。但我需要以
150min 22秒
格式绑定到UI的时间。这怎么可能?任何可用的内置函数或格式?

由于您需要总分钟数,您可以使用
多重绑定

<TextBlock>
    <TextBlock.Text>
        <MultiBinding StringFormat="{}{0}min {1}sec">
            <Binding Path="YourTimeSpan.TotalMinutes" Converter="{StaticResource ObjectToIntegerConverter}"/>
            <Binding Path="YourTimeSpan.Seconds"/>
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>
不要忘记在
资源中声明它,例如:

<Window
    ...
    xmlns:Converters="clr-namespace:Your.Converters.Namespace">

    <Window.Resources>
        <Converters:ObjectToIntegerConverter x:Key="ObjectToIntegerConverter"/>
    </Window.Resources>

只需自己制作:

public struct MyTimeSpan
{
  private readonly TimeSpan _data;

  public MyTimeSpan(TimeSpan data)
  {
    _data = data;
  }

  public override string ToString()
  {
    return string.Format("{0:f0}min {1}sec", _data.TotalMinutes, _data.Seconds);
  }
}

我对XAML不熟悉,但您可以将
TimeSpan
格式化为

var ts = new TimeSpan(2, 30, 22);

Console.WriteLine(string.Format("{0}min {1}sec", 
                                (int)ts.TotalMinutes,
                                ts.Seconds));
产生

150min 22sec

请注意,
TotalMinutes
是一个包含秒数的浮点值。@Petradulin感谢您指出这一点,我现在在回答中已经考虑到了这一点。
150min 22sec