BASH Time and Date

From Indie IT Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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"