summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 174a41c)
raw | patch | inline | side by side (parent: 174a41c)
author | oetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa> | |
Thu, 11 Nov 2010 16:12:17 +0000 (16:12 +0000) | ||
committer | oetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa> | |
Thu, 11 Nov 2010 16:12:17 +0000 (16:12 +0000) |
This disambiguates between some "at-style" time specs:
11111111 yields an error message:
did you really mean month 1111111?
and
19711205 denotes Dec 12, 1971 and not the timestamp.
The patch allows to write:
epoch+11111111s or epoch+19711205s
-- Peter Stamfest
git-svn-id: svn://svn.oetiker.ch/rrdtool/branches/1.4/program@2147 a5681a0c-68f1-0310-ab6d-d61299d08faa
11111111 yields an error message:
did you really mean month 1111111?
and
19711205 denotes Dec 12, 1971 and not the timestamp.
The patch allows to write:
epoch+11111111s or epoch+19711205s
-- Peter Stamfest
git-svn-id: svn://svn.oetiker.ch/rrdtool/branches/1.4/program@2147 a5681a0c-68f1-0310-ab6d-d61299d08faa
doc/rrdfetch.pod | patch | blob | history | |
src/rrd.h | patch | blob | history | |
src/rrd_parsetime.c | patch | blob | history |
diff --git a/doc/rrdfetch.pod b/doc/rrdfetch.pod
index 0052aa6513b1a82b351d5e705cc5fd185f78d090..1c3134734b71f70a48db2f7787ce7958af2b30dc 100644 (file)
--- a/doc/rrdfetch.pod
+++ b/doc/rrdfetch.pod
I<NOTE2>: if you specify the I<day> in this way, the I<time-of-day> is
REQUIRED as well.
-Finally, you can use the words B<now>, B<start>, or B<end> as your time
+Finally, you can use the words B<now>, B<start>, B<end> or B<epoch> as your time
reference. B<Now> refers to the current moment (and is also the default
time reference). B<Start> (B<end>) can be used to specify a time
relative to the start (end) time for those tools that use these
-categories (B<rrdfetch>, L<rrdgraph>).
+categories (B<rrdfetch>, L<rrdgraph>) and B<epoch> indicates the
+*IX epoch (*IX timestamp 0 = 1970-01-01 00:00:00 UTC). B<epoch> is
+useful to disambiguate between a timestamp value and some forms
+of abbreviated date/time specifications, because it allows to use
+time offset specifications using units, eg. B<epoch>+19711205s unambiguously
+denotes timestamp 19711205 and not 1971-12-05 00:00:00 UTC.
Month and day of the week names can be used in their naturally
abbreviated form (e.g., Dec for December, Sun for Sunday, etc.). The
diff --git a/src/rrd.h b/src/rrd.h
index bde3f516ab17f0230f2fd8abfccd4b24b5c88fda..79a8bd26c696b8709274839d4cc04c905de871f8 100644 (file)
--- a/src/rrd.h
+++ b/src/rrd.h
typedef enum {
ABSOLUTE_TIME,
RELATIVE_TO_START_TIME,
- RELATIVE_TO_END_TIME
+ RELATIVE_TO_END_TIME,
+ RELATIVE_TO_EPOCH
} rrd_timetype_t;
#define TIME_OK NULL
diff --git a/src/rrd_parsetime.c b/src/rrd_parsetime.c
index f3a8e2ec094b8d049303b3a4655c2c4bc35b200a..1b59f454252a851a72f6cf0d2e3a4fe433393f73 100644 (file)
--- a/src/rrd_parsetime.c
+++ b/src/rrd_parsetime.c
enum { /* symbols */
MIDNIGHT, NOON, TEATIME,
- PM, AM, YESTERDAY, TODAY, TOMORROW, NOW, START, END,
+ PM, AM, YESTERDAY, TODAY, TOMORROW, NOW, START, END, EPOCH,
SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS,
MONTHS_MINUTES,
NUMBER, PLUS, MINUS, DOT, COLON, SLASH, ID, JUNK,
{"s", START},
{"end", END},
{"e", END},
+ {"epoch", EPOCH},
{"jan", JAN},
{"feb", FEB},
case MINUS:
break; /* jump to OFFSET-SPEC part */
+ case EPOCH:
+ ptv->type = RELATIVE_TO_EPOCH;
+ goto KeepItRelative;
case START:
ptv->type = RELATIVE_TO_START_TIME;
goto KeepItRelative;