Private/Test-FPControlRuntime.ps1

function Test-FPControlRuntime {
    <#
    .SYNOPSIS
        Confirm Task Execution Time
    .DESCRIPTION
        Return TRUE if a task runtime is active
    .PARAMETER RunTime
        Date Value, or 'now' or 'daily'
    .PARAMETER Key
        Label to map to Registry for get/set operations
    .EXAMPLE
        Test-FPControlRuntime -RunTime "now"
    .EXAMPLE
        Test-FPControlRuntime -RunTime "11/12/2017 10:05:00 PM"
    .EXAMPLE
        Test-FPControlRuntime -RunTime "daily" -Key "TestValue"
    #>

        param (
            [parameter(Mandatory = $True)]
            [ValidateNotNullOrEmpty()]
            [string] $RunTime,
            [parameter(Mandatory = $False)]
            [string] $Key = ""
        )
        switch ($RunTime) {
            'now' { Write-Output $True; break }
            'daily' {
                $lastrun = Get-FPConfiguration -Name "$Key" -Default ""
                if ($lastrun -ne "") {
                    $prevDate = $(Get-Date($lastrun)).ToShortDateString()
                    Write-FPLog "previous run: $prevDate"
                    if ($prevDate -ne (Get-Date).ToShortDateString()) {
                        Write-FPLog "$prevDate is not today: $((Get-Date).ToShortDateString())"
                        Write-Output $True
                    }
                }
                else {
                    Write-FPLog "no previous run"
                    Write-Output $True
                }
                break
            }
            default {
                Write-FPLog "checking explicit runtime"
                if ((Get-Date).ToLocalTime() -ge $RunTime) {
                    Write-Output $True
                }
            }
        } # switch
}