Private/Get-DateFromWeekDay.ps1

function Get-DateFromWeekDay
{
    param
    (
        [Parameter(Mandatory, Position = 1)]
        [ValidateSet('This', 'Next')]
        [string]$Week,

        [Parameter(Mandatory, Position = 2)]
        [System.DayOfWeek]$DayOfWeek,

        [ValidateNotNullOrEmpty()]
        [DateTime]$ReferenceDate = (Get-Date)
    )

    if ($Week -eq 'Next')
    {
        $ReferenceDate = $ReferenceDate.AddDays(7);
    }

    # In System.DayOfWeek, Sunday corresponds to 0. Make Monday correspond to 0, Tuesday to 1 etc. to match AH site
    $DayOfWeek = switch ($DayOfWeek)
    {
        'Sunday' { $DayOfWeek + 7 }
        default { $DayOfWeek }
    }

    $ReferenceDate.Date.AddDays(-$ReferenceDate.DayOfWeek).AddDays($DayOfWeek)
}