sprawdzanie czy przedział dat wpisuje się w inny przedział dat

0

Cześć,
problem do rozwiązania: chce sprawdzić (metoda) czy określony przedział daty, zawiera się w innym, stały przedziale. Dodatkowo chce, zwrócić ilość dni która się w niej zawiera.
przykład -> stały przedział to 01.03.2020 -- 20.06.2020, przedział który bedzie sprawdzany to np 03.02.2020 -- 05.05.2020
nie proszę o gotowe rozwiązanie, a nie jakaś wskazówkę co z tym zrobić. Coś próbuję z TimeSpan, ale jak na ten moment nie wychodzi.
pozdro

** obie daty to obiekty typu DateTime

1

pierwsze pól zagadnienia jest ciekawe, ale znane.
Na początku się wydaje, że potrzebne są 4 porównania, ale sprytne 2 wystarczą

https://www.google.com/search?client=firefox-b-d&q=range+overlap

1
        class DateTimeRange
        {
            private DateTime start;
            private DateTime end;
            public int Days => (end - start).Days + 1;

            public DateTimeRange(DateTime start, DateTime end)
            {
                if (start > end) throw new ArgumentException($"'{nameof(end)}' must be grater than '{nameof(start)}'");
                this.start = start.Date;
                this.end = end.Date;
            }

            public bool IsOverlapped(DateTimeRange range)
                => range.start <= end && range.end >= start;

            public DateTimeRange GetOverlappingRange(DateTimeRange range)
            {
                var start = this.start;
                if (range.start > this.start)
                {
                    start = range.start <= this.end ? range.start : throw new Exception("No overlap");
                }

                var end = this.end;
                if (range.end < this.end)
                {
                    end = range.end >= this.start ? range.end : throw new Exception("No overlap");
                }

                return new DateTimeRange(start, end);
            }
        }
0

dzięki Wam za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1