Angesichts einer Liste von Datumsbereichen möchte ich eine Liste zusammenhängender Zeiträume erhalten.Abrufen zusammenhängender Zeiträume
Ich bin nicht sicher, die Terminologie von dem, was ich suche, aber ich habe zusammen ein Skelett setzen:
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
namespace ContiguousTimeSpans
{
class Program
{
static void Main(string[] args)
{
List<DateRange> ranges = new List<DateRange>();
ranges.Add(new DateRange(DateTime.Parse("01/12/2015 07:00:00"), DateTime.Parse("01/12/2015 10:00:00")));
ranges.Add(new DateRange(DateTime.Parse("01/12/2015 06:00:00"), DateTime.Parse("01/12/2015 09:00:00")));
ranges.Add(new DateRange(DateTime.Parse("01/12/2015 05:00:00"), DateTime.Parse("01/12/2015 08:00:00")));
ranges.Add(new DateRange(DateTime.Parse("01/12/2015 18:00:00"), DateTime.Parse("01/12/2015 21:00:00")));
ranges.Add(new DateRange(DateTime.Parse("01/12/2015 12:00:00"), DateTime.Parse("01/12/2015 14:00:00")));
ranges.Add(new DateRange(DateTime.Parse("01/12/2015 20:00:00"), DateTime.Parse("01/12/2015 22:00:00")));
ranges.Add(new DateRange(DateTime.Parse("01/12/2015 11:00:00"), DateTime.Parse("01/12/2015 23:00:00")));
List<DateRange> contiguousBlocks = GetContiguousTimespans(ranges);
Debug.Assert(contiguousBlocks.Count == 2);
Debug.Assert(contiguousBlocks[0].Start.Hour == 5);
Debug.Assert(contiguousBlocks[0].End.Hour == 10);
Debug.Assert(contiguousBlocks[1].Start.Hour == 11);
Debug.Assert(contiguousBlocks[1].End.Hour == 23);
Console.ReadKey();
}
public static List<DateRange> GetContiguousTimespans(List<DateRange> ranges)
{
List<DateRange> result = new List<DateRange>();
//???
return result;
}
}
public class DateRange
{
public DateTime Start { get; set; }
public DateTime End { get; set; }
public DateRange(DateTime start, DateTime end)
{
Start = start;
End = end;
}
}
}
Gibt es eine Möglichkeit, die zusammenhängenden abzuleiten Bereiche?
so, was Ihre Frage .. was ist das Problem und oder Problem mit Ihrem vorhandenen Code ..? Was passiert, wenn Sie den Code ausführen ..? – MethodMan
Hi MethodMan, ich kenne den Algorithmus nicht, der in GetContiguousTimespans() implementiert werden soll. Der Versuch, den ich gemacht habe, ist unordentlich und ich möchte das Skelett nicht verschmutzen – Fidel
funktioniert es ..? – MethodMan