Reputation: 1237
I have following time samples:
06:09
08:10
23:12
00:06 // next day
00:52
I have a sample 00:31
(nextday
) that needs to be compared and check if its less then the above samples.
if (cdnTime > nextNode)
{
//dosomething
}
cdnTime
here is the 00:31
and nextNode is the above given multiple samples. Time 00:31
is greater then all samples except 00:52
so I need the if statement to be false until it reaches 00:52
. How do I achieve this. Keeping in mind the time samples switch to next day, do I need to make it as DateTime and then compare or is there any way of comparison with TimeSpan without dates.
Upvotes: 0
Views: 1830
Reputation: 4629
Yes you need to somehow tell that it's another day. You can either use a DateTime, but you could also initialize a timespan with an additional day - it provides a Parse-method for this:
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);
}
}
Another option would be to add the day afterwards:
var anotherTime = TimeSpan.FromMinutes(3);
anotherTime = anotherTime.Add(TimeSpan.FromDays(1));
Console.WriteLine(anotherTime.TotalMinutes);
You can try it out here: https://dotnetfiddle.net/k39TIe
Upvotes: 1