Blog

Article Tags

Halloween Countdown Script

By William Jeffrey Rankin, Fri June 28 2024

A little diversion: a Halloween countdown script written in PowerShell (and Rexx).

Usage and Sample Output

jeffr@Europa: ~/Halloween $ powershell ./halloween.ps1
There are only 125 days until Halloween! This year, it falls on a Thursday.

The Code

# halloween - Display the number of days until Halloween and the day on which it falls

# $Author: jeffr $
# $Date: 2024-11-01 10:34:32 -0400 (Fri, 01 Nov 2024) $
# $Revision: 9 $

$c_date = Get-Date -Format 'MM/dd/yyyy'
$c_year = ($c_date.Split('/'))[2]
$c_month = ($c_date.Split('/'))[0]
if ($c_month -ge 11) { $c_year = [int]$c_year + 1 }
$h_date = "10/31/$c_year"

$days   = (((New-TimeSpan -Start $c_date -End $h_date).ToString()).Split('.'))[0]
$day    = (Get-Date $h_date).DayOfWeek
$day_l = 'days'
$are_is = 'are'

if ($days -eq 1) {
    $day_l = 'day'
    $are_is = 'is'
}

if ($days -eq '00:00:00') {
    Write-Host 'TODAY is Halloween!'
} else {
    Write-Host "There $are_is only $days $day_l until Halloween! This year, it falls on a $day."
}

The Same in Rexx

/* halloween - Display the number of days until Halloween and the day on which it falls

$Author: jeffr $
$Date: 2024-11-02 08:20:36 -0400 (Sat, 02 Nov 2024) $
$Revision: 10 $
*/

c_date = DATE('B')
parse value DATE('N', c_date, 'B') with dom ' ' month ' ' year
if month = 'Nov' | month = 'Dec' then year = year + 1
h = '31 Oct' year
h_date = DATE('B', h)

days = h_date - c_date
day = DATE('W', h, 'N')
day_l = 'days'
are_is = 'are'

if days = 1 then do
    day_l = 'day'
    are_is = 'is'
end

if days = 0 then
    say 'TODAY is Halloween!'
else
    say 'There' are_is 'only' days day_l 'until Halloween! This year, it falls on a' day'.'