Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
DATESEQ(1)			 User Commands			    DATESEQ(1)

NAME
       dateseq - Generate a sequence of	date/times from	FIRST to LAST, option-
       ally in steps of

SYNOPSIS
       dateseq [OPTION]...  FIRST [[INCREMENT] LAST]

DESCRIPTION
       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 be-
       fore FIRST and no date/times after LAST will be printed.

       Negative	INCREMENTs must	be given, i.e. if FIRST	is newer than LAST.

       Recognized OPTIONs:

       -h, --help
	      Print help and exit

       -V, --version
	      Print version and	exit

       -q, --quiet
	      Suppress	message	about date/time	and duration parser errors and
	      fix-ups.	The default is to print	a  warning  or	the  fixed  up
	      value and	return error code 2.

       -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  in-
	      put format specifier string, that	value will be used.

       -b, --base=DT
	      For underspecified input use DT as a fallback to fill in missing
	      fields.  Also used for ambiguous format specifiers  to  position
	      their  range  on the absolute time line.	Must be	a date/time in
	      ISO8601 format.  If omitted defaults to the current date/time.

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

       --locale=LOCALE
	      Format results according to LOCALE, this would only affect month
	      and weekday names.

       --from-locale=LOCALE
	      Interpret	dates on stdin or the command line as coming from  the
	      locale LOCALE, this would	only affect month and weekday names as
	      input formats have to be specified explicitly.

       -s, --skip=STRING...
	      Skip weekdays specified by STRING.  STRING can be	a single week-
	      day (Mon,	Tue, etc.), and	to skip	several	days the --skip	option
	      can be used multiple times.  STRING can also  be	a  comma-sepa-
	      rated  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) deacti-
	      vates 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  af-
	      ter/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	 dura-
	      tion 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.

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)
	 %g  ISO week date year	without	the century (range 00 to 99)
	 %G  ISO week date year	including the century
	 %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,  day of week is Sun (range	00 to 53)
	 %V  The ISO week count,  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,  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
	 %_y The year shortened	to a single digit
	 %Z  The zone offset in	hours and minutes (HH:MM) with
	     a preceding sign (+ for offsets east of UTC, - for	offsets
	     west of UTC)

	 %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  (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   Suffix, treat days	as business days

       By design dates before 1601-01-01 are not supported.

       For conformity here is a	list of	calendar designators and their	corre-
       sponding	format string:
	 ymd	 %Y-%m-%d
	 ymcw	 %Y-%m-%c-%w
	 ywd	 %rY-W%V-%u
	 bizda	 %Y-%m-%db
	 lilian	    n/a
	 ldn	    n/a
	 julian	    n/a
	 jdn	    n/a

       These  designators  can	be  used  as  output  format string, moreover,
       @code{lilian}/@code{ldn}	and @code{julian}/@code{jdn} can also be  used
       as input	format string.

SPECIFYING DURATIONS
       Some tools ("dateadd", "dateseq") need durations	as their input.	 Dura-
       tions 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  transitions

	 d  days
	 b  business days
	 mo months
	 y  years

EXAMPLES
	 $ dateseq 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
	 $

	 $ dateseq 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
	 $

	 $ dateseq --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
	 $

	 $ dateseq 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
	 $

	 $ dateseq --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
	 $

	 $ dateseq 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
	 $

	 $ dateseq --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
	 $

	 $ dateseq --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
	 $

	 $ dateseq --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
	 $

	 $ dateseq 2001-01-01 2d 2001-01-08
	 2001-01-01
	 2001-01-03
	 2001-01-05
	 2001-01-07
	 $

	 $ dateseq --compute-from-last 2001-01-01 2d 2001-01-08
	 2001-01-02
	 2001-01-04
	 2001-01-06
	 2001-01-08
	 $

	 $ dateseq 2001-01-08 -2d 2001-01-01
	 2001-01-08
	 2001-01-06
	 2001-01-04
	 2001-01-02
	 $

	 $ dateseq --compute-from-last 2001-01-08 -2d 2001-01-01
	 2001-01-07
	 2001-01-05
	 2001-01-03
	 2001-01-01
	 $

	 $ dateseq 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
	 $

	 $ dateseq --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
	 $

	 $ dateseq 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
	 $

	 $ dateseq --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
	 $

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 dateseq is maintained	as a  Texinfo  manual.
       If  the	info and dateseq programs are properly installed at your site,
       the command

	      info (dateutils)dateseq

       should give you access to the complete manual.

dateutils 0.4.1			 December 2016			    DATESEQ(1)

NAME | SYNOPSIS | DESCRIPTION | FORMAT SPECS | SPECIFYING DURATIONS | EXAMPLES | AUTHOR | REPORTING BUGS | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=dateseq&sektion=1&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help