#pragma once #include "configuration.h" #include "gps/RTC.h" #include #include /** * Convert a delta in seconds ago to timestamp information (hours, minutes, days ago). * * @param secondsAgo Number of seconds ago to convert * @param hours Pointer to store the hours (0-23) * @param minutes Pointer to store the minutes (0-59) * @param daysAgo Pointer to store the number of days ago * @return true if conversion was successful, false if invalid input or time not available */ bool deltaToTimestamp(uint32_t secondsAgo, uint8_t *hours, uint8_t *minutes, int32_t *daysAgo); /** * Get a human-readable string representing the time ago in a format like "2 days, 3 hours, 15 minutes". * * @param agoSecs Number of seconds ago to convert * @param timeStr Pointer to store the resulting string * @param maxLength Maximum length of the resulting string buffer */ void getTimeAgoStr(uint32_t agoSecs, char *timeStr, uint8_t maxLength); /** * Get a compact human-readable string that only shows the largest non-zero time components. * For example, 0 days 1 hour 2 minutes will display as "1h 2m" but 1 day 2 hours 3 minutes * will display as "1d 2h". */ void getUptimeStr(uint32_t uptimeMillis, const char *prefix, char *uptimeStr, uint8_t maxLength, bool includeSecs = false);