Timespan Сравнить - PullRequest
       7

Timespan Сравнить

0 голосов
/ 02 января 2019

У меня есть следующие образцы времени:

06:09
08:10
23:12
00:06   // next day
00:52

У меня есть образец 00:31 (nextday), который необходимо сравнить и проверить, не меньше ли он указанных выше образцов.

if (cdnTime > nextNode)
{
   //dosomething
 }

cdnTime здесь 00:31, а nextNode - это приведенные выше несколько выборок.Время 00:31 больше, чем у всех выборок, кроме 00:52, поэтому мне нужно, чтобы оператор if был ложным, пока не достигнет 00:52.Как мне этого добиться.Принимая во внимание, что выборки времени переключаются на следующий день, нужно ли мне сделать это как DateTime, а затем сравнить или есть какой-либо способ сравнения с TimeSpan без дат.

1 Ответ

0 голосов
/ 02 января 2019

Да, нужно как-то сказать, что это другой день. Вы можете использовать DateTime, но вы также можете инициализировать интервал времени с дополнительным днем ​​- для этого предусмотрен Parse-метод :

using System;
using System.Globalization;             

public class Program
{
    public static void Main()
    {
        var cdnTime = TimeSpan.Parse("23:12", CultureInfo.InvariantCulture);
        var nextTime = TimeSpan.Parse("01.00:03", CultureInfo.InvariantCulture);

        Console.WriteLine(cdnTime.TotalMinutes);
        Console.WriteLine(nextTime.TotalMinutes);
        Console.WriteLine(cdnTime.CompareTo(nextTime));
        Console.WriteLine(cdnTime < nextTime);
    }
}

Другой вариант - добавить следующий день:

var anotherTime = TimeSpan.FromMinutes(3);
anotherTime = anotherTime.Add(TimeSpan.FromDays(1));        
Console.WriteLine(anotherTime.TotalMinutes);

Вы можете попробовать это здесь: https://dotnetfiddle.net/k39TIe

...