📄 MatDenDagen/Models/DateSpan.cs
using System;

namespace MatDenDagen.Models;

public sealed class DateSpan
{
    public required DateOnly Start { get; init; }
    public required DateOnly End { get; init; }

    public bool IsValid => Start <= End;

    public int DaysBetween => End.DayNumber - Start.DayNumber + 1;

    public DateOnly GetRandomDate(Random random)
    {
        if (!IsValid || DaysBetween <= 0)
        {
            throw new InvalidOperationException("Invalid date span");
        }

        return Start.AddDays(random.Next(DaysBetween));
    }
}