Provided by: dateutils_0.2.5-1_amd64
NAME
ddiff - Compute durations between dates and times
SYNOPSIS
dseq [OPTION]... FIRST [[INCREMENT] LAST]
DESCRIPTION
dseq 0.2.5 Generate a sequence of date/times from FIRST to LAST, optionally in steps of INCREMENT (which defaults to `1d'). If LAST is omitted it defaults to `now' if FIRST is a date/time, or `today' if FIRST is a date, or `time' if FIRST is a time. The values of FIRST and LAST are always inclusive and no date/times before FIRST and no date/times after LAST will be printed. Negative INCREMENTs must be given, i.e. if FIRST is newer than LAST. -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. -s, --skip=STRING Skip weekdays specified by STRING. STRING can be a single weekday (Mon, Tue, etc.), and to skip several days the --skip option can be used multiple times. STRING can also be a comma-separated list of weekday names, or `ss' to skip weekends (sat+sun) altogether. STRING can also contain date ranges like `mo-we' for monday to wednesday. --alt-inc=STRING Alternative increment to use when a date is hit that is skipped as per --skip. This increment will be applied until a non-skipped date is reached. The special case `0' (default) deactivates alternative incrementing. A useful value could be `1d' for increasing sequences and `-1d' for decreasing sequences, so if a skipped date is encountered the next non-skipped date after/before will be used. --compute-from-last Compute a start value from LAST using INCREMENT. This option has an effect only when INCREMENT is not a divisor of the duration between FIRST and LAST. In such case, an alternative FIRST will be computed by consecutively subtracting INCREMENT from LAST until FIRST is hit or crossed.
EXAMPLES
% dseq 2012-02-01 2012-03-01 2012-02-01 2012-02-02 2012-02-03 2012-02-04 2012-02-05 2012-02-06 2012-02-07 2012-02-08 2012-02-09 2012-02-10 2012-02-11 2012-02-12 2012-02-13 2012-02-14 2012-02-15 2012-02-16 2012-02-17 2012-02-18 2012-02-19 2012-02-20 2012-02-21 2012-02-22 2012-02-23 2012-02-24 2012-02-25 2012-02-26 2012-02-27 2012-02-28 2012-02-29 2012-03-01 % dseq 2001-02-03 2001-03-03 --skip sat -f "%F %a" 2001-02-04 Sun 2001-02-05 Mon 2001-02-06 Tue 2001-02-07 Wed 2001-02-08 Thu 2001-02-09 Fri 2001-02-11 Sun 2001-02-12 Mon 2001-02-13 Tue 2001-02-14 Wed 2001-02-15 Thu 2001-02-16 Fri 2001-02-18 Sun 2001-02-19 Mon 2001-02-20 Tue 2001-02-21 Wed 2001-02-22 Thu 2001-02-23 Fri 2001-02-25 Sun 2001-02-26 Mon 2001-02-27 Tue 2001-02-28 Wed 2001-03-01 Thu 2001-03-02 Fri % dseq --compute-from-last 2001-02-03 1 2001-03-03 --skip sat -f "%F %a" 2001-02-04 Sun 2001-02-05 Mon 2001-02-06 Tue 2001-02-07 Wed 2001-02-08 Thu 2001-02-09 Fri 2001-02-11 Sun 2001-02-12 Mon 2001-02-13 Tue 2001-02-14 Wed 2001-02-15 Thu 2001-02-16 Fri 2001-02-18 Sun 2001-02-19 Mon 2001-02-20 Tue 2001-02-21 Wed 2001-02-22 Thu 2001-02-23 Fri 2001-02-25 Sun 2001-02-26 Mon 2001-02-27 Tue 2001-02-28 Wed 2001-03-01 Thu 2001-03-02 Fri % dseq 2001-02-03 3 2001-03-03 --skip sat,fri -f "%F %a" 2001-02-06 Tue 2001-02-12 Mon 2001-02-15 Thu 2001-02-18 Sun 2001-02-21 Wed 2001-02-27 Tue % dseq --compute-from-last 2001-02-03 3 2001-03-03 --skip sat,fri -f "%F %a" 2001-02-04 Sun 2001-02-07 Wed 2001-02-13 Tue 2001-02-19 Mon 2001-02-22 Thu 2001-02-25 Sun 2001-02-28 Wed % dseq 2001-02-05 4 2001-03-04 -f "%F %a" 2001-02-05 Mon 2001-02-09 Fri 2001-02-13 Tue 2001-02-17 Sat 2001-02-21 Wed 2001-02-25 Sun 2001-03-01 Thu % dseq --compute-from-last 2001-02-05 4 2001-03-04 -f "%F %a" 2001-02-08 Thu 2001-02-12 Mon 2001-02-16 Fri 2001-02-20 Tue 2001-02-24 Sat 2001-02-28 Wed 2001-03-04 Sun % dseq --alt-inc 1d 2001-02-03 3 2001-03-03 --skip sat,fri -f "%F %a" 2001-02-04 Sun 2001-02-07 Wed 2001-02-11 Sun 2001-02-14 Wed 2001-02-18 Sun 2001-02-21 Wed 2001-02-25 Sun 2001-02-28 Wed % dseq --compute-from-last --alt-inc 1d 2001-02-03 3 2001-03-03 --skip sat,fri -f "%F %a" 2001-02-04 Sun 2001-02-07 Wed 2001-02-11 Sun 2001-02-14 Wed 2001-02-18 Sun 2001-02-21 Wed 2001-02-25 Sun 2001-02-28 Wed % dseq 2001-01-01 2d 2001-01-08 2001-01-01 2001-01-03 2001-01-05 2001-01-07 % dseq --compute-from-last 2001-01-01 2d 2001-01-08 2001-01-02 2001-01-04 2001-01-06 2001-01-08 % dseq 2001-01-08 -2d 2001-01-01 2001-01-08 2001-01-06 2001-01-04 2001-01-02 % dseq --compute-from-last 2001-01-08 -2d 2001-01-01 2001-01-07 2001-01-05 2001-01-03 2001-01-01 % dseq 10:00:00 12m 11:20:00 10:00:00 10:12:00 10:24:00 10:36:00 10:48:00 11:00:00 11:12:00 % dseq --compute-from-last 10:00:00 12m 11:20:00 10:08:00 10:20:00 10:32:00 10:44:00 10:56:00 11:08:00 11:20:00 % dseq 11:20:00 -12m 10:00:00 11:20:00 11:08:00 10:56:00 10:44:00 10:32:00 10:20:00 10:08:00 % dseq --compute-from-last 11:20:00 -12m 10:00:00 11:12:00 11:00:00 10:48:00 10:36:00 10:24:00 10:12:00 10:00:00
FORMAT SPECS
Format specs in dateutils are similar to posix' strftime(). However, due to a broader range of supported calendars dateutils must employ different rules. Date specs: %a The abbreviated weekday name %A The full weekday name %_a The weekday name shortened to a single character (MTWRFAS) %b The abbreviated month name %B The full month name %_b The month name shortened to a single character (FGHJKMNQUVXZ) %c The count of the weekday within the month (range 00 to 05) %C The count of the weekday within the year (range 00 to 53) %d The day of the month, 2 digits (range 00 to 31) %D The day of the year, 3 digits (range 000 to 366) %F Equivalent to %Y-%m-%d (ymd's canonical format) %j Equivalent to %D %m The month in the current calendar (range 00 to 19) %Q The quarter of the year (range Q1 to Q4) %q The number of the quarter (range 01 to 04) %s The number of seconds since the Epoch. %u The weekday as number (range 01 to 07, Sunday being 07) %U The week count, first day of week is Sun (range 00 to 53) %V The ISO week count, first day of week is Mon (range 01 to 53) %w The weekday as number (range 00 to 06, Sunday being 00) %W The week count, first day of week is Mon (range 00 to 53) %y The year without a century (range 00 to 99) %Y The year including the century %Od The day as roman numerals %Om The month as roman numerals %Oy The two digit year as roman numerals %OY The year including the century as roman numerals %rs In time systems whose Epoch is different from the unix Epoch, this selects the number of seconds since then. %rY In calendars with years that don't coincide with the Gregorian years, this selects the calendar's year. %dth The day of the month as an ordinal number, 1st, 2nd, 3rd, etc. %mth The month of the year as an ordinal number, 1st, 2nd, 3rd, etc. %db The business day of the month (since last month's ultimo) %dB Number of business days until this month's ultimo Time specs: %H The hour of the day using a 24h clock, 2 digits (range 00 to 23) %I The hour of the day using a 12h clock, 2 digits (range 01 to 12) %M The minute (range 00 to 59) %N The nanoseconds (range 000000000 to 999999999) %p The string AM or PM, noon is PM and midnight is AM. %P Like %p but in lowercase %S The second (range 00 to 60, 60 is for leap seconds) %T Equivalent to %H:%M:%S General specs: %n A newline character %t A tab character %% A literal % character Modifiers: %O Modifier to turn decimal numbers into Roman numerals %r Modifier to turn units into real units th Suffix. Read and print ordinal numbers b Treat date as business date By design dates before 1601-01-01 are not supported. For conformity here is a list of calendar spec names and their meaning: ymd %Y-%m-%d ymcw %Y-%m-%c-%w ywd %rY-W%V-%u bizda %Y-%m-%db
SPECIFYING DURATIONS
Some tools ("dadd", "dseq") need durations as their input. Durations are generally incompatible with input formats as specified by "-i|--input-format" and (at the moment) the input syntax is fixed. The general format is "[+-]Nunit" where "+" or "-" is the sign, "N" a number, and "unit" the unit as discussed below. Units: s seconds m minutes h hours rs real-life seconds, as in including leap second transitions d days b business days mo months y years
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)dseq should give you access to the complete manual.