#!/bin/bash
linee="-------------------------------------->>>"
clear
echo -e "\n"
echo -e "+---------------------------------------+"
echo -e "|\e[34;1m 計算時間小工具 (請輸入日期或時間) \e[0m|"
echo -e "| |"
echo -e "|\e[33;1m Start Time 必須小於 Finish Time \e[0m|"
echo -e "| |"
echo -e "|\e[35;1m 此小工具為 24 小時制 \e[0m|"
echo -e "| |"
echo -e "|\e[35;1m 請勿輸入超過 24 小時 \e[0m|"
echo -e "+---------------------------------------+"
echo -e "\n"
echo -e "$linee"
echo -e "\n"
echo -e "\e[32;1mStart Time 請輸入開始日期或時間 \e[0m"
echo -e "\n"
echo -e "\e[34;1mex:20230731 或 1615\e[0m \e[35;1m(不接受 2400) \e[0m"
echo -e "\n"
echo -ne "answer \e[32;5m: \e[0m"
read -e starti
clear
echo -e "\n"
echo -e "+---------------------------------------+"
echo -e "|\e[34;1m 計算時間小工具 (請輸入日期或時間) \e[0m|"
echo -e "| |"
echo -e "|\e[33;1m Start Time 必須小於 Finish Time \e[0m|"
echo -e "| |"
echo -e "|\e[35;1m 此小工具為 24 小時制 \e[0m|"
echo -e "| |"
echo -e "|\e[35;1m 請勿輸入超過 24 小時 \e[0m|"
echo -e "+---------------------------------------+"
echo -e "\n"
echo -e "$linee"
echo -e "\n"
echo -e "\e[32;1mFinish Time 請輸入結束日期或時間 \e[0m"
echo -e "\n"
echo -e "\e[34;1mex:20230804 或 1920\e[0m \e[35;1m(不接受 2400)\e[0m"
echo -e "\n"
echo -ne "answer \e[32;5m: \e[0m"
read -e finishi
clear
sleep 0.5
echo -e "\n"
echo -e "+---------------------------------------+"
echo -e "|\e[34;1m 計算時間小工具 (請輸入日期或時間) \e[0m|"
echo -e "| |"
echo -e "|\e[33;1m Start Time 必須小於 Finish Time \e[0m|"
echo -e "| |"
echo -e "|\e[35;1m 此小工具為 24 小時制 \e[0m|"
echo -e "| |"
echo -e "|\e[35;1m 請勿輸入超過 24 小時 \e[0m|"
echo -e "+---------------------------------------+"
echo -e "\n"
echo -e "$linee"
echo -e "\n"
case "${starti}" in
[0-9][0-9][0-9][0-9][0][1-9][0-2][0-9])
startii=`date -d "${starti}" '+%s'`
echo -e "開始時間為 : \e[34;1m `date -d @${startii} '+%Y-%m-%d'`\e[0m"
;;
[0-9][0-9][0-9][0-9][0][1-9][3][0-1])
startii=`date -d "${starti}" '+%s'`
echo -e "開始時間為 : \e[34;1m `date -d @${startii} '+%Y-%m-%d'`\e[0m"
;;
[0-9][0-9][0-9][0-9][1][0-2][0-2][0-9])
startii=`date -d "${starti}" '+%s'`
echo -e "開始時間為 : \e[34;1m `date -d @${startii} '+%Y-%m-%d'`\e[0m"
;;
[0-9][0-9][0-9][0-9][1][0-2][3][0-1])
startii=`date -d "${starti}" '+%s'`
echo -e "開始時間為 : \e[34;1m `date -d @${startii} '+%Y-%m-%d'`\e[0m"
;;
[2][0-3][0-5][0-9])
startii=`date -d "${starti}" '+%s'`
echo -e "開始時間為 : \e[34;1m `date -d @${startii} '+%H:%M'`\e[0m"
;;
[0-1][0-9][0-5][0-9])
startii=`date -d "${starti}" '+%s'`
echo -e "開始時間為 : \e[34;1m `date -d @${startii} '+%H:%M'`\e[0m"
;;
*)
clear
echo -e "\n"
echo -e "$linee"
echo -e "\n"
echo -e "\e[31;1m你輸入的開始時間為 \e[33;1m ${starti} \e[0m"
echo -e "\n"
echo -e "\e[35;1m輸入錯誤 ERROR \e[0m"
echo -e "\n"
echo -e "\e[32;1m月欄位不可大於 \e[34;1m 12 \e[0m"
echo -e "\n"
echo -e "\e[32;1m日欄位不可大於 \e[34;1m 30 \e[0m"
echo -e "\n"
echo -e "\e[32;1m小時欄位不可大於 \e[34;1m 24 \e[0m"
echo -e "\n"
echo -e "\e[32;1m分鐘欄位不可大於 \e[34;1m 59 \e[0m"
echo -e "\n"
echo -e "$linee"
echo -e "\n"
exit 1
;;
esac
echo -e "\n"
case "${finishi}" in
[0-9][0-9][0-9][0-9][0][1-9][0-2][0-9])
finishii=`date -d "${finishi}" '+%s'`
echo -e "結束時間為 : \e[34;1m `date -d @${finishii} '+%Y-%m-%d'`\e[0m"
;;
[0-9][0-9][0-9][0-9][0][1-9][3][0-1])
finishii=`date -d "${finishi}" '+%s'`
echo -e "結束時間為 : \e[34;1m `date -d @${finishii} '+%Y-%m-%d'`\e[0m"
;;
[0-9][0-9][0-9][0-9][1][0-2][0-2][0-9])
finishii=`date -d "${finishi}" '+%s'`
echo -e "結束時間為 : \e[34;1m `date -d @${finishii} '+%Y-%m-%d'`\e[0m"
;;
[0-9][0-9][0-9][0-9][1][0-2][3][0-1])
finishii=`date -d "${finishi}" '+%s'`
echo -e "開始時間為 : \e[34;1m `date -d @${finishii} '+%Y-%m-%d'`\e[0m"
;;
[2][0-3][0-5][0-9])
finishii=`date -d "${finishi}" '+%s'`
echo -e "結束時間為 : \e[34;1m `date -d @${finishii} '+%H:%M'`\e[0m"
;;
[0-1][0-9][0-5][0-9])
finishii=`date -d "${finishi}" '+%s'`
echo -e "結束時間為 : \e[34;1m `date -d @${finishii} '+%H:%M'`\e[0m"
;;
*)
clear
echo -e "\n"
echo -e "$linee"
echo -e "\n"
echo -e "\e[31;1m你輸入的開始時間為 \e[33;1m ${starti} \e[0m"
echo -e "\n"
echo -e "\e[31;1m你輸入的結束時間為 \e[33;1m ${finishi} \e[0m"
echo -e "\n"
echo -e "\e[35;1m輸入錯誤 ERROR \e[0m"
echo -e "\n"
echo -e "\e[32;1m月欄位不可大於 \e[34;1m 12 \e[0m"
echo -e "\n"
echo -e "\e[32;1m日欄位不可大於 \e[34;1m 30 \e[0m"
echo -e "\n"
echo -e "\e[32;1m小時欄位不可大於 \e[34;1m 24 \e[0m"
echo -e "\n"
echo -e "\e[32;1m分鐘欄位不可大於 \e[34;1m 59 \e[0m"
echo -e "\n"
echo -e "$linee"
echo -e "\n"
exit 1
;;
esac
echo -e "\n"
echo -e "$linee"
time1=$(($(date -d "$finishi" +%s)-$(date -d "$starti" +%s)));
if [ $(echo "0 < $time1" | bc): 0 ]
then
echo -e "\n"
echo -e "\e[35;5mERROR !!! ERROR !!! ERROR !!!\e[0m"
echo -e "\n"
echo -e "\e[35;1m開始時間必須小於結束時間 !!! \e[0m"
echo -e "\n"
echo -e "$linee"
echo -e "\n"
exit 1
else
echo -e "\n"
echo -e "兩者相差秒數為 : \e[31;1m $time1 秒\e[0m"
fi
#time2=$(($time1 / 60));
time2=`echo -e "scale=0; $time1/60"| bc`
echo -e "\n"
echo -e "兩者相差分鐘為 : \e[31;1m $time2 分\e[0m"
#time3=$(($time1 / 60 / 60));
time3=`echo -e "scale=2; $time2/60"| bc`
if [ `echo -e "${time3}"|egrep ".00"|wc -l`:= "1" ]
then
time31=`echo -e "${time3}"|sed "s/.00//g"`
echo -e "\n"
echo -e "兩者相差小時為 : \e[31;1m $time31 時\e[0m"
else
echo -e "\n"
echo -e "兩者相差小時為 : \e[31;1m $time3 時\e[0m"
fi
#time4=$(($time1 / 60 / 60 / 24));
time4=`echo -e "scale=2; $time3/24"| bc`
if [ $(echo "1 < $time4" | bc): 0 ]
then
echo -e "\n"
echo -e "兩者相差天數為 : \e[31;1m 0$time4 天\e[0m"
else
if [ `echo -e "${time4}"|egrep ".00"|wc -l`:= "1" ]
then
time41=`echo -e "${time4}"|sed "s/.00//g"`
echo -e "\n"
echo -e "兩者相差天數為 : \e[31;1m $time41 天\e[0m"
else
echo -e "\n"
echo -e "兩者相差天數為 : \e[31;1m $time4 天\e[0m"
fi
fi
echo -e "\n"
echo -e "$linee"
echo -e "\n"