BASH Time and Date

From Indie IT Wiki

Time Between File Timestamps

NEW

function displaytime () {
  local T=$1
  local D=$((T/60/60/24))
  local H=$((T/60/60%24))
  local M=$((T/60%60))
  local S=$((T%60))
  (( $D > 0 )) && printf '%d days ' $D
  (( $H > 0 )) && printf '%d hours ' $H
  (( $M > 0 )) && printf '%d minutes ' $M
  (( $D > 0 || $H > 0 || $M > 0 )) && printf 'and '
  printf '%d seconds\n' $S
}

# displaytime 666

SECONDS=$((stat --printf '%Y' "${FINISHED}"; printf ' - '; stat --printf '%Y\n' "${STARTED}") | bc -lq) && 
TIMETAKEN=`displaytime $SECONDS`
printf "${TITLE}\n\n${INPUTFILESIZE}\n\n${OUTPUTFILESIZE}\n\n${TIMETAKEN}" |mail -s "ffmpeg" paully.littlefield@gmail.com && 

OLD

SECONDS=$((stat --printf '%Y' /home/paully/hb.finished; printf ' - '; stat --printf '%Y\n' /home/paully/hb.started) | bc -lq) && 
TIMETAKEN=$(date -ud "@$SECONDS" +'$((%s/3600/24)) days %H hours %M minutes %S seconds') && 
printf "${INPUTFILESIZE}\n\n${OUTPUTFILESIZE}\n\n${SECONDS}\n\n${TIMETAKEN}"

Ping With Time And Date Stamp

ping -i1 -c10 192.168.1.1 | while read pong; do echo "$(date '+%Y-%m-%d-%H:%M:%S')    $pong"; done

Time

Checking NTP

timedatectl status
ntpstat
ntpq -pn

Thanks to Cyberciti

Convert Standard Date And Time To Epoch Time

date +%s

Convert Epoch Time To Standard Date And Time

date --date='@1335309835'

Date

Today

date

Yesterday

date -d "yesterday"

Number Of Days Between Two Dates

echo $"(( $(date --date="031122" +%s) - $(date --date="021020" +%s) ))/(60*60*24)"|bc

Number Of Days After

date -d "230 days"
or
date -d "24 weeks 2 days 4 hour 6 minutes"

Number Of Days Before

date -d "230 days ago"
or
date -d "24 weeks 2 days 4 hour 6 minutes ago"

Date Years From Date

TZ='Europe/London' date -d "1987-01-01+98 years 11 months 30 days 23 hours 59 minutes 59 seconds"