ddiff man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

DDIFF(1)			 User Commands			      DDIFF(1)

NAME
       ddiff - Compute durations between dates and times

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

DESCRIPTION
       ddiff 0.2.7

       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 for‐
       mat 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.

       See section `The refinement rule' in ddiff(1).

       -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
       Unlike  time  or	 absolute instants, durations are reference-free, i.e.
       the reference instant is not part of the duration.  As a	 result	 dura‐
       tions  cannot  be named, i.e. there is no naming scheme that applies to
       all durations and all references unambiguously.

       Consequently, none of the format specifiers for date/times makes	 sense
       for durations in the literal sense.  However, to aid intuitive usage we
       reused format specifiers when they  represent  integral	values	and  a
       valid unit for duration, as follows:

       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

       Modifiers:
	 %r    Modifier to turn units into real units
	 %0    Modifier to pad refined values with zeroes
	 %SPC  Modifier to pad refined values with spaces
	 b     Suffix, treat days as business days

THE REFINEMENT RULE
       Durations  are  somewhat	 ambiguous  when it comes to representing them
       through format specifiers.  Unlike format specifiers  in	 point-in-time
       representations	duration  specifiers  can have an intra-line relation‐
       ship.

       So for instance a duration of 128 seconds might	be  presented  through
       "%S"  as	 "128" but similarly through "%M:%S" as "02:08" (read two min‐
       utes and 8 seconds).

       There are several approaches to deal with this  ambiguity.   The	 ddiff
       tool  will follow, what we call, the refinement rule.  That is, regard‐
       less of	the  position  of  a  format  specifier,  if  it  is  a	 valid
       @emph{refinement}  of  another  specifier in the format string, then it
       will only show the fractional value, i.e.  the  value  in  its  natural
       range with respect to the @emph{refined} specifier.

	 %Y  possible refinements: %m, %w, %d
	 %m  possible refinements: %w, %d
	 %w  possible refinements: %d
	 %d  possible refinements: %H, %M, %S
	 %H  possible refinements: %M, %S
	 %M  possible refinements: %S

       The  refinement alternatives are listed in order of precedence and they
       are mutually exclusive.	I.e. it is not possible to express a  duration
       in  months  and	hours without having a "%d" specifier as well.	On the
       other hand in a chain of refinements inner elements are optional,  i.e.
       you  can express a duration in weeks and hours because every day has 24
       hours and hence there are 168 hours in a week.

       Using the refinement rule keeps the format string dead simple,  there's
       no need for operators or a full-blown language to distinguish the range
       ambiguity, which then would have to be escaped because they could  also
       in  theory  be  part  of	 the  literal characters of the format string,
       resulting more often than not in command lines that are hard  to	 craft
       and even harder to understand later on (e.g. if used in shell scripts).

       The  refinement	rule ingeniously covers the 99% case but, unlike other
       approaches, there's @emph{no} way to display two	 unrefined  values  in
       the same format string, e.g. "'%w weeks (which is %d days)'".

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.

dateutils 0.2.7			 January 2014			      DDIFF(1)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net