From fb8e9ce4760baec3877f2363f409074d9091f8d0 Mon Sep 17 00:00:00 2001 From: visuve Date: Sun, 10 Mar 2024 18:40:10 +0200 Subject: [PATCH] Add time::time_to_midnight --- src/sykero_time.cpp | 6 ++++++ src/sykero_time.hpp | 2 ++ src/sykerolabs.cpp | 7 ++----- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/sykero_time.cpp b/src/sykero_time.cpp index 0482d82..0f33fda 100644 --- a/src/sykero_time.cpp +++ b/src/sykero_time.cpp @@ -35,6 +35,12 @@ namespace sl::time return tm.tm_hour >= 22 || tm.tm_hour <= 8; } + std::chrono::hh_mm_ss time_to_midnight(const std::chrono::system_clock::time_point& time_point) + { + std::chrono::nanoseconds nanos_to_midnight = time_point - std::chrono::floor(time_point); + return std::chrono::hh_mm_ss(nanos_to_midnight); + } + template std::string to_string( const std::chrono::system_clock::time_point& time_point, diff --git a/src/sykero_time.hpp b/src/sykero_time.hpp index 47ab46e..69a9947 100644 --- a/src/sykero_time.hpp +++ b/src/sykero_time.hpp @@ -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 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()); diff --git a/src/sykerolabs.cpp b/src/sykerolabs.cpp index 9a3fc18..6312998 100644 --- a/src/sykerolabs.cpp +++ b/src/sykerolabs.cpp @@ -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(now); - std::chrono::hh_mm_ss 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 water_level_sensor_pins =