Public/Wait-Until.ps1

<#
.SYNOPSIS
Induces a wait operation using a simple time specifier.

.DESCRIPTION
Wait-Until uses a brief time span operator D:H:M:S and then waits that specified time before continuing.

.PARAMETER pattern
Pattern is a string of four digits seperated by colons.

Position 1: Days
Position 2: Hours
Position 3: Minutes
Position 4: Seconds

.EXAMPLE
Wait-Until 0:0:3:45

(Delay for 3 minutes and 45 seconds)

.EXAMPLE
Wait-Until 1:2:15:2

(Delay for 1 day, 2 hours, 15 minutes, and 2 seconds)

.NOTES
Sending a break will stop this loop.
#>

Function Wait-Until
{
    [CmdletBinding()]
    param([string][Parameter(Mandatory=$true)]$pattern)
    $Delay = ($pattern.Split(":"))
    $DelaySpan = New-TimeSpan -Days $Delay[0] -Hours $Delay[1] -Minutes $Delay[2] -Seconds $Delay[3]
    Write-Verbose "Waiting timespan"
    Write-Verbose ($DelaySpan | Out-String)
    Start-Sleep -Seconds $DelaySpan.TotalSeconds
}