datediff


bliznezz аватар

bliznezz - Posted on 30 Апрель 2010

понадобилась програмка (скрипт), который будет считать разницу между двумя датами с точностью до секунды.

интересует поддержка форматов даты:

2008/02/25 11:27:53
Feb 25 11:27:53 2008

как оказалось оба формата поддеживаются date --date="$DATE"

поэтому 0.0.0.1 версия скрипта вышла до горя простой:

#!/bin/bash
 
D1=$(date +%s --date="$1") && D2=$(date +%s --date="$2")
test $? && echo $((D2-D1))

хочется добавить опции -h -m -s, которые будут выдавать часы, минуты, секунды.

Так подойдет?? :

#!/bin/bash
 
D1=$(date +%s --date="$1") && D2=$(date +%s --date="$2")
shift 2
test $? && date -u $@ --date=@$((D2-D1))

У date есть такая плоходокументированная фишка: конструкция --date=@'number' воспринимает number как секунды, прошедшие с "epoch" (1970-01-01 UTC), и переводит их в дату:

# ./datediff "2009/02/25 11:37:53" "2009/02/25 11:27:55" "+%H:%M:%S"
 
23:50:02

great thanks

Отправить комментарий

Google Friend Connect (leave a quick comment)
loading...
Содержание этого поля является приватным и не предназначено к показу.