From 2b94fc641813bbf8ae85e54da793c106f59ed985 Mon Sep 17 00:00:00 2001 From: Paul Beckingham Date: Wed, 13 Apr 2016 23:43:08 -0400 Subject: [PATCH] helpers: Added intervalToFileNames --- src/helper.cpp | 39 +++++++++++++++++++++++++++++++++++++++ src/timew.h | 1 + 2 files changed, 40 insertions(+) diff --git a/src/helper.cpp b/src/helper.cpp index af788928..83a2870e 100644 --- a/src/helper.cpp +++ b/src/helper.cpp @@ -258,3 +258,42 @@ std::string jsonFromIntervals (const std::vector & intervals) } //////////////////////////////////////////////////////////////////////////////// +// Given an interval, determine which files names need to be written. +std::vector intervalToFileNames (const Interval& interval) +{ + std::vector files; + + auto start_y = interval.start ().year (); + auto start_m = interval.start ().month (); + + auto end = interval.end (); + if (end.toEpoch () == 0) + end = Datetime (); + + auto end_y = end.year (); + auto end_m = end.month (); + + while (start_y <= end_y || + (start_y == end_y && start_m <= end_m)) + { + std::stringstream name; + name << std::setw (4) << std::setfill ('0') << start_y + << '-' + << std::setw (2) << std::setfill ('0') << start_m + << ".data"; + + files.push_back (name.str ()); + + // Next month. + start_m += 1; + if (start_m > 12) + { + start_y += 1; + start_m = 1; + } + } + + return files; +} + +//////////////////////////////////////////////////////////////////////////////// diff --git a/src/timew.h b/src/timew.h index 77f2eb0e..0334c312 100644 --- a/src/timew.h +++ b/src/timew.h @@ -53,6 +53,7 @@ Timeline createTimelineFromData (const Rules&, Database&, const Filter&); Interval getLatestInterval (Database&); bool intervalMatchesFilter (const Interval&, const Filter&); std::string jsonFromIntervals (const std::vector &); +std::vector intervalToFileNames (const Interval&); // utiƀ.cpp std::string osName ();