Changed the --begin and --end switches to rely on interval parsing to

determine the beginning and ending of their range.  Also, the ending
is now inclusive.
This commit is contained in:
John Wiegley 2005-08-05 22:37:29 +00:00
parent ed63481f3b
commit b40006f450

View file

@ -615,18 +615,34 @@ OPT_BEGIN(account, "a:") {
// Report filtering
OPT_BEGIN(begin, "b:") {
char buf[128];
interval_t interval(optarg);
if (interval.begin)
std::strftime(buf, 127, formats[0], std::localtime(&interval.begin));
else
throw error(std::string("Could not determine beginning of period '") +
optarg + "'");
if (! config.predicate.empty())
config.predicate += "&";
config.predicate += "d>=[";
config.predicate += optarg;
config.predicate += buf;
config.predicate += "]";
} OPT_END(begin);
OPT_BEGIN(end, "e:") {
char buf[128];
interval_t interval(optarg);
if (interval.end)
std::strftime(buf, 127, formats[0], std::localtime(&interval.end));
else
throw error(std::string("Could not determine end of period '") +
optarg + "'");
if (! config.predicate.empty())
config.predicate += "&";
config.predicate += "d<[";
config.predicate += optarg;
config.predicate += buf;
config.predicate += "]";
} OPT_END(end);