Functions/Get-DayOfYear.ps1

function Get-DayOfYear {
    <#
    .NOTES
        Author: Skyler Hart
        Created: 2021-05-20 20:48:46
        Last Edit: 2021-05-20 21:48:24
        Keywords: Day of year, Julian
 
    .LINK
        https://wanderingstag.github.io
    #>

    [CmdletBinding()]
    [Alias('Get-JulianDay','Get-JulianDate')]
    param(
        [Parameter(
            Mandatory=$false,
            Position=0
        )]
        [ValidateLength(1,10)]
        [Alias('Date')]
        [string]$Day = (Get-Date -Format "yyyy-MM-dd"),

        [Parameter(
            Mandatory=$false,
            Position=1
        )]
        [ValidateLength(4,4)]
        [string]$Year
    )

    $c = $Day.Length
    if ($c -le 3) {
        $nd = $Day - 1
        if ([string]::IsNullOrWhiteSpace($Year)) {
            [string]$Year = (Get-Date).Year
            $info = (Get-Date -Day 1 -Month 1 -Year $Year).AddDays($nd)
        }
        else {
            $info = (Get-Date -Day 1 -Month 1 -Year $Year).AddDays($nd)
        }
        $info
    }
    elseif ($c -eq 8) {
        $y = $Day.Substring(0,4)
        $m = $Day.Substring(4)
        $m = $m.Substring(0,2)
        $d = $Day.Substring(6)
        $info = (Get-Date -Year $y -Month $m -Day $d).DayOfYear
        $info
    }
    elseif ($c -eq 10) {
        $y = $Day.Substring(0,4)
        $m = $Day.Substring(5)
        $m = $m.Substring(0,2)
        $d = $Day.Substring(8)
        $info = (Get-Date -Year $y -Month $m -Day $d).DayOfYear
        $info
    }
    else {
        Write-Error "Not in the correct format. Format must be entered in the format x, xx, or xxx for a day of the year. Ex: 12. For a date, it must be entered in the format yyyyMMdd or yyyy-MM-dd. Ex: 2021-05-20" -Category SyntaxError
    }
}