#!/bin/sh # Calculate and display the date in the Discordian calendar. Something # similar used to be part of util-linux, but isn't anymore. Oh well. That's # what shell scripts are for. gyear=$(date +%Y) dayofyear=$(date +%j) # strip leading zeroes. "+%-j" doesn't work on netbsd and leaving them in # makes stuff be interpreted as octal. gyear=$(echo "$gyear" | sed 's/^0*//') dayofyear=$(echo "$dayofyear" | sed 's/^0*//') yold=$((gyear+1166)) # leapyear handling if [ $((gyear%4)) -eq 0 ] && [ $((gyear%100)) -ne 0 ] || [ $((gyear%400)) -eq 0 ] then if [ "$dayofyear" -eq 60 ] #is it St Tib's Day? then echo "St. Tib's Day, $yold YOLD" exit 0 fi if [ "$dayofyear" -gt 60 ] # Is it *after* St Tib's Day? then dayofyear=$((dayofyear-1)) # Remove intercallary day for later calculations fi fi season=$((dayofyear/73+1)) dayofseason=$((dayofyear%73)) if [ "$dayofseason" -eq 0 ] then dayofseason=73 fi seasonstr="IMPOSSIBLE SEASON" if [ "$season" -eq 1 ] then seasonstr="Chaos" fi if [ "$season" -eq 2 ] then seasonstr="Discord" fi if [ "$season" -eq 3 ] then seasonstr="Confusion" fi if [ "$season" -eq 4 ] then seasonstr="Bureaucracy" fi if [ "$season" -eq 5 ] then seasonstr="Aftermath" fi echo "$seasonstr $dayofseason, $yold YOLD"