added tool for time date and moon phase recording
This commit is contained in:
143
time.sh
Executable file
143
time.sh
Executable file
@@ -0,0 +1,143 @@
|
||||
#!/bin/bash
|
||||
|
||||
HOUR=8
|
||||
MINUTE=0
|
||||
SECOND=0
|
||||
DOW="Mon"
|
||||
MOON=0
|
||||
MOON_DIR="D"
|
||||
MOON_CNTR=0
|
||||
DAY=1
|
||||
MONTH=1
|
||||
YEAR=2300
|
||||
|
||||
#check arguments
|
||||
for (( i=1; i<=$#; i++))
|
||||
do
|
||||
if [[ "${!i}" =~ "H" ]]; then
|
||||
j=$((i+1))
|
||||
HOUR=${!j}
|
||||
elif [[ "${!i}" =~ "m" ]]; then
|
||||
j=$((i+1))
|
||||
MINUTE=${!j}
|
||||
elif [[ "${!i}" =~ "s" ]]; then
|
||||
j=$((i+1))
|
||||
SECOND=${!j}
|
||||
elif [[ "${!i}" =~ "d" ]]; then
|
||||
j=$((i+1))
|
||||
DOW=${!j}
|
||||
elif [[ "${!i}" =~ "l" ]]; then
|
||||
j=$((i+1))
|
||||
k=$((i+2))
|
||||
MOON=${!j}
|
||||
MOON_DIR=${!k}
|
||||
MOON_CNTR=$((12744*$MOON))
|
||||
elif [[ "${!i}" =~ "D" ]]; then
|
||||
j=$((i+1))
|
||||
DAY=${!j}
|
||||
elif [[ "${!i}" =~ "M" ]]; then
|
||||
j=$((i+1))
|
||||
MONTH=${!j}
|
||||
elif [[ "${!i}" =~ "Y" ]]; then
|
||||
j=$((i+1))
|
||||
YEAR=${!j}
|
||||
elif [[ "${!i}" =~ "h" ]]; then
|
||||
echo "Author: Angoosh Leviocki"
|
||||
echo "Script Usage:"
|
||||
echo "DnD_time.sh [OPTIONS]"
|
||||
echo "if options are empty, default time will be used"
|
||||
echo ""
|
||||
echo "OPTIONS:"
|
||||
echo "-H sets hour"
|
||||
echo "-m sets minute"
|
||||
echo "-s sets second"
|
||||
echo "-d sets day of week (Mon, Tue, Wed, Thu, Fri, Sat, Sun"
|
||||
echo "-l sets moon phase in % and direction (D,C)"
|
||||
echo "-D sets date day"
|
||||
echo "-M sets date month"
|
||||
echo "-Y sets date year"
|
||||
echo "-h prints this help"
|
||||
exit 0
|
||||
fi
|
||||
done
|
||||
|
||||
#1h = 12h in game
|
||||
#708h = moon phase period = 3.54h = 1% = 12744s
|
||||
#internal time counter for moon in seconds
|
||||
|
||||
clear
|
||||
|
||||
while true
|
||||
do
|
||||
if [[ $MOON_DIR = "D" ]]; then
|
||||
MOON_CNTR=$((MOON_CNTR+12))
|
||||
if [[ $MOON_CNTR -ge 1274400 ]]; then
|
||||
MOON_DIR="C"
|
||||
fi
|
||||
else
|
||||
MOON_CNTR=$((MOON_CNTR-12))
|
||||
if [[ $MOON_CNTR -le 0 ]]; then
|
||||
MOON_DIR="D"
|
||||
fi
|
||||
fi
|
||||
#MOON=$(($MOON_CNTR / 1274400))
|
||||
MOON=$(echo "scale=2; ($MOON_CNTR*100)/1274400" | bc)
|
||||
|
||||
SECOND=$((SECOND+12))
|
||||
|
||||
if [[ $SECOND -ge 60 ]]; then
|
||||
SECOND=0
|
||||
MINUTE=$((MINUTE+1))
|
||||
fi
|
||||
if [[ $MINUTE -ge 60 ]]; then
|
||||
MINUTE=0
|
||||
HOUR=$((HOUR+1))
|
||||
fi
|
||||
if [[ $HOUR -ge 24 ]]; then
|
||||
HOUR=0
|
||||
|
||||
if [[ $DOW = "Mon" ]]; then
|
||||
DOW="Tue"
|
||||
elif [[ $DOW = "Tue" ]]; then
|
||||
DOW="Wed"
|
||||
elif [[ $DOW = "Wed" ]]; then
|
||||
DOW="Thu"
|
||||
elif [[ $DOW = "Thu" ]]; then
|
||||
DOW="Fri"
|
||||
elif [[ $DOW = "Fri" ]]; then
|
||||
DOW="Sat"
|
||||
elif [[ $DOW = "Sat" ]]; then
|
||||
DOW="Sun"
|
||||
elif [[ $DOW = "Sun" ]]; then
|
||||
DOW="Mon"
|
||||
fi
|
||||
|
||||
DAY=$((DAY+1))
|
||||
if [[ $MONTH -eq 1 || $MONTH -eq 3 || $MONTH -eq 5 || $MONTH -eq 7 || $MONTH -eq 9 || $MONTH -eq 11 ]]; then
|
||||
if [[ $DAY -gt 31 ]]; then
|
||||
MONTH=$((MONTH+1))
|
||||
DAY=1
|
||||
fi
|
||||
elif [[ $MONTH -eq 2 ]]; then
|
||||
if [[ $DAY -gt 28 ]]; then
|
||||
MONTH=$((MONTH+1))
|
||||
DAY=1
|
||||
fi
|
||||
else
|
||||
if [[ $DAY -gt 30 ]]; then
|
||||
MONTH=$((MONTH+1))
|
||||
DAY=1
|
||||
fi
|
||||
fi
|
||||
if [[ $MONTH -gt 12 ]]; then
|
||||
MONTH=1
|
||||
YEAR=$((YEAR+1))
|
||||
fi
|
||||
fi
|
||||
|
||||
echo -e "\e[3A\e[KDATE: ${DOW} ${DAY}-${MONTH}-${YEAR}"
|
||||
echo -e "TIME: ${HOUR}:${MINUTE}:${SECOND}"
|
||||
echo -e "MOON: $MOON_DIR ${MOON}%"
|
||||
|
||||
sleep 1
|
||||
done
|
||||
Reference in New Issue
Block a user