有没有办法让TimeSpan采取两个参数?

时间:2015-03-06 14:49:00

标签: c#

默认情况下TimeSpan结构需要三个或更多个参数(小时/分钟/秒等),但我想知道是否有办法将此减少到两个参数(甚至一个)以获得分钟/秒或只是秒作为参数。

3 个答案:

答案 0 :(得分:3)

如果您只想传递秒或分钟,可以使用静态方法:

TimeSpan timeSpanDays = TimeSpan.FromDays(10);
TimeSpan timeSpanHours = TimeSpan.FromHours(10);
TimeSpan timeSpanMilliseconds = TimeSpan.FromMilliseconds(10);
TimeSpan timeSpanMinutes = TimeSpan.FromMinutes(10);
TimeSpan timeSpanSeconds = TimeSpan.FromSeconds(10);
TimeSpan timeSpanTicks = TimeSpan.FromTicks(10);

答案 1 :(得分:2)

有一些静态方法,可以从一个参数创建TimeSpan

TimeSpan.FromSeconds(double seconds)
TimeSpan.FromMinutes(double minutes)

您可以阅读有关msdn TimeSpan page

的所有信息

注意double参数,所以你可以传递1.5分钟。

答案 2 :(得分:1)

你有一些选择:

  • TimeSpan.From...方法
  • 工厂方法:

    public static void MakeSpan(int mins, int secs) {
        return new TimeSpan(0, mins, secs);
    }
    

  • 一个捷径-lambda:

    public static void main() {
        Func<int, int, TimeSpan> MakeSpan = (mins, secs) => new TimeSpan(0, mins, secs);
        var span1 = MakeSpan(1, 30);
        var span2 = MakeSpan(2, 05);
        // more to come
    }