Skip to content

Commit

Permalink
Add time::time_to_midnight
Browse files Browse the repository at this point in the history
  • Loading branch information
visuve committed Mar 10, 2024
1 parent 9f8dbbd commit fb8e9ce
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 5 deletions.
6 changes: 6 additions & 0 deletions src/sykero_time.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,12 @@ namespace sl::time
return tm.tm_hour >= 22 || tm.tm_hour <= 8;
}

std::chrono::hh_mm_ss<std::chrono::nanoseconds> time_to_midnight(const std::chrono::system_clock::time_point& time_point)
{
std::chrono::nanoseconds nanos_to_midnight = time_point - std::chrono::floor<std::chrono::days>(time_point);
return std::chrono::hh_mm_ss<std::chrono::nanoseconds>(nanos_to_midnight);
}

template <size_t FS, size_t ES>
std::string to_string(
const std::chrono::system_clock::time_point& time_point,
Expand Down
2 changes: 2 additions & 0 deletions src/sykero_time.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ namespace sl::time

bool is_night(const std::chrono::system_clock::time_point& time_point = std::chrono::system_clock::now());

std::chrono::hh_mm_ss<std::chrono::nanoseconds> time_to_midnight(const std::chrono::system_clock::time_point& time_point = std::chrono::system_clock::now());

std::string time_string(const std::chrono::system_clock::time_point& time_point = std::chrono::system_clock::now());
std::string date_string(const std::chrono::system_clock::time_point& time_point = std::chrono::system_clock::now());
std::string datetime_string(const std::chrono::system_clock::time_point& time_point = std::chrono::system_clock::now());
Expand Down
7 changes: 2 additions & 5 deletions src/sykerolabs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -291,16 +291,13 @@ namespace sl
"CPU Temperature"
});

auto rotate_csv = [&]()
const auto rotate_csv = [&]()
{
csv.initialize(csv_file_timestamped_path());
};

auto now = std::chrono::system_clock::now();
std::chrono::nanoseconds nanos_to_midnight = now - std::chrono::floor<std::chrono::days>(now);
std::chrono::hh_mm_ss<std::chrono::nanoseconds> first_start(nanos_to_midnight);
const std::chrono::hh_mm_ss first_start = time::time_to_midnight();
constexpr std::chrono::days interval(1);

time::timer csv_rotate_timer(rotate_csv, first_start, interval);

const std::set<uint32_t> water_level_sensor_pins =
Expand Down

0 comments on commit fb8e9ce

Please sign in to comment.