DDIFF(1)

NAME
ddiff - Compute durations between dates and times

SYNOPSIS
ddiff [OPTION]... DATE/TIME [DATE/TIME]...

DESCRIPTION
ddiff 0.2.6

Compute duration from DATE/TIME (the reference date/time) to the other DATE/TIMEs given and print the result as duration. If the other DATE/TIMEs are omitted read them from stdin.

DATE/TIME can also be one of the following specials

- `now'
    interpreted as the current (UTC) time stamp

- `time'
    the time part of the current (UTC) time stamp

- `today'
    the current date (according to UTC)

- `tomo[rrow]'
    tomorrow's date (according to UTC)

- `y[ester]day'
    yesterday's date (according to UTC)

Note: The output format of durations (specified via -f) takes all format specifiers into account, i.e. specifying %M and %S for example prints the duration in minutes and seconds, whereas specifying %S only prints the duration in seconds.

-h, --help
    Print help and exit

-V, --version
    Print version and exit

-q, --quiet
    Suppress message about date/time and duration parser errors.

-f, --format=STRING
    Output format. This can either be a specifier string (similar to strftime()'s FMT) or the name of a calendar.

-i, --input-format=STRING
    Input format, can be used multiple times. Each date/time will be passed to the input format parsers in the order they are given, if a date/time can be read successfully with a given input format specifier string, that value will be used.

-e, --backslash-escapes
    Enable interpretation of backslash escapes in the output and input format specifier strings.

--from-zone=ZONE
    Interpret dates on stdin or the command line as coming from the time zone ZONE.

EXAMPLES
  $ ddiff 2012-03-02 2012-03-02
  0
  $
  $ ddiff 2012-03-02 2012-03-12
  10
  $
  $ ddiff 2012-03-02 2012-04-12
  41
  $
  $ ddiff 2012-03-12 2012-04-02
  21
  $
  $ ddiff 2012-04-02 2012-03-12
  -21
  $
  $ ddiff 2012-01-02 2012-02-29 -f '%dd'
  58d
  $
  $ ddiff 2012-01-02 2012-02-29 -f '%ww %dd'
  8w 2d
  $
  $ ddiff 10:00:00 10:00:00
  0s
  $
  $ ddiff 10:01:00 10:06:00
  300s
  $
  $ ddiff 10:06:00 10:01:00
  -300s
  $
  $ ddiff 10:01:00 11:03:10 -f '%S sec'
  3730 sec
  $
  $ ddiff 10:01:00 11:03:10 -f '%Mm %Ss'
  62m 10s
  $
  $ ddiff 10:01:00 11:03:10 -f '%H:%M:%S'
  1:2:10
  $
  $ ddiff 2012-03-02T10:04:00 2012-03-02T10:14:00
  600s
  $
  $ ddiff 2012-03-02T10:04:00 2012-03-02T10:14:00 -f '%M min'
  10 min
  $
  $ ddiff 2012-03-01T12:17:00 2012-03-02T14:00:00
  92580s
  $
  $ ddiff 2012-03-01T12:17:00 2012-03-02T14:00:00 -f '%d days and %S seconds'
  1 days and 6180 seconds
  $

FORMAT SPECS FOR DURATIONS
Durations are somewhat ambiguous when it comes to representing them through format specifiers. Unlike point-in-time representations durations specifiers can have an intra-line relationship. So for instance a duration of 128 seconds might be presented through "%S" as "128" but similarly through "%M:%S" as "02:08". Date specs:
  %c Equivalent to %w
  %d Durations in days
  %F Equivalent to %dd with no resorting to bigger units
  %m Durations in months
  %w Durations in weeks
  %y Equivalent to %Y
  %Y Durations in years
  %db Duration in business days
  %dB Equivalent to %db Time specs:
  %H Durations in hours
  %I Equivalent to %H
  %M Durations in minutes
  %S Durations in seconds
  %T Equivalent to %Ss without resorting to bigger units
  %rS Durations in real-life seconds, as in including leap seconds
  %rT Equivalent to %rSs without resoring to bigger units General specs:
  %n A newline character
  %t A tab character
  %% A literal % character

AUTHOR
Written by Sebastian Freundt <freundt@fresse.org>

REPORTING BUGS
Report bugs to: https://github.com/hroptatyr/dateutils/issues

SEE ALSO
The full documentation for ddiff is maintained as a Texinfo manual. If the info and ddiff programs are properly installed at your site, the command

    info (dateutils)ddiff

should give you access to the complete manual.