time.c 596 B

1234567891011121314151617181920
  1. #include <furi.h>
  2. #include <furi_hal.h>
  3. #include "time.h"
  4. const int TIME_SECONDS_IN_MINUTE = 60;
  5. const int TIME_MINUTES_IN_HOUR = 60;
  6. uint32_t time_now() {
  7. return furi_hal_rtc_get_timestamp();
  8. }
  9. TimeDifference time_difference_seconds(uint32_t begin, uint32_t end) {
  10. const uint32_t duration_seconds = end - begin;
  11. uint32_t minutes = (duration_seconds / TIME_MINUTES_IN_HOUR) % TIME_MINUTES_IN_HOUR;
  12. uint32_t seconds = duration_seconds % TIME_SECONDS_IN_MINUTE;
  13. return (
  14. TimeDifference){.total_seconds = duration_seconds, .minutes = minutes, .seconds = seconds};
  15. }