using System.Collections.Generic;
public static void Main()
var sleepSessions = new List<Sleep>{
new Sleep{StartDate = new DateTime(2022,10,18,22,36,00), EndDate = new DateTime(2022,10,19,07,50,00)},
new Sleep{StartDate = new DateTime(2022,10,19,15,42,00), EndDate = new DateTime(2022,10,20,07,49,00)},
new Sleep{StartDate = new DateTime(2022,10,20,22,35,00), EndDate = new DateTime(2022,10,21,06,22,00)},
new Sleep{StartDate = new DateTime(2022,10,22,00,30,00), EndDate = new DateTime(2022,10,22,08,05,00)}
TimeSpan earliestSleepTime;
var multiDaySessions = sleepSessions.Where(x => x.StartDate.Date != x.EndDate.Date).ToList();
if (multiDaySessions.Any())
earliestSleepTime = multiDaySessions.Min(x => x.StartDate.TimeOfDay);
earliestSleepTime = sleepSessions.Min(x => x.StartDate.TimeOfDay);
Console.WriteLine(earliestSleepTime);
public DateTime StartDate {get;set;}
public DateTime EndDate {get;set;}