From 0201a2ab953ecb8e8dff0ad47d76011e7ce4ace2 Mon Sep 17 00:00:00 2001 From: igor Date: Fri, 6 Feb 2026 14:23:17 -0800 Subject: [PATCH] Clean up a bit the time summation. --- main.c | 47 +++++++++++++++++++++++++---------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/main.c b/main.c index 0735124..df1cd07 100644 --- a/main.c +++ b/main.c @@ -114,6 +114,21 @@ typedef struct Activity_Stat { char seconds_str[24]; } Activity_Stat; +typedef struct Hours { + U64 hours; + U64 minutes; + U64 seconds; +} Hours; + +Hours break_time(U64 seconds) +{ + Hours hours; + hours.hours = seconds / 60 / 60; + hours.minutes = seconds / 60 - (60 * hours.hours); + hours.seconds = seconds - ((hours.hours * 60 * 60) + (hours.minutes * 60)); + return hours; +} + int main(int argc, char *argv[]) { U64 secs = now(); @@ -208,10 +223,8 @@ int main(int argc, char *argv[]) activities_stats[activities[i].activity].total_seconds += activities[i].ended - activities[i].began; } - U32 hrs = activities_stats[other].total_seconds / 60 / 60; - U32 mins = activities_stats[other].total_seconds / 60; - U32 secs = activities_stats[other].total_seconds - (60 * mins); - snprintf(activities_stats[other].seconds_str, sizeof(activities_stats[other].seconds_str), "%02lu:%02lu:%02lu", hrs, mins, secs); + Hours time = break_time(activities_stats[other].total_seconds); + snprintf(activities_stats[other].seconds_str, sizeof(activities_stats[other].seconds_str), "%02lu:%02lu:%02lu", time.hours, time.minutes, time.seconds); if(activity_button(padding_x, 60, width, (window_h-70), "Other", activities_stats[other].seconds_str, font_size, RED)) { if(activities[current_activity].activity != other) { current_activity++; @@ -223,14 +236,10 @@ int main(int argc, char *argv[]) } } - hrs = activities_stats[work].total_seconds / 60 / 60; - mins = activities_stats[work].total_seconds / 60; - secs = activities_stats[work].total_seconds - (60 * mins); - snprintf(activities_stats[work].seconds_str, sizeof(activities_stats[work].seconds_str), "%02lu:%02lu:%02lu", hrs, mins, secs); + time = break_time(activities_stats[work].total_seconds); + snprintf(activities_stats[work].seconds_str, sizeof(activities_stats[work].seconds_str), "%02lu:%02lu:%02lu", time.hours, time.minutes, time.seconds); if(activity_button((padding_x*2)+(width*1), 60, width, (window_h-70), "Work", activities_stats[work].seconds_str, font_size, BLUE)) { if(activities[current_activity].activity != work) { - printf("Activity WORK\n"); - current_activity++; activities[current_activity].activity = work; @@ -240,10 +249,8 @@ int main(int argc, char *argv[]) } } - hrs = activities_stats[projects].total_seconds / 60 / 60; - mins = activities_stats[projects].total_seconds / 60; - secs = activities_stats[projects].total_seconds - (60 * mins); - snprintf(activities_stats[projects].seconds_str, sizeof(activities_stats[projects].seconds_str), "%02lu:%02lu:%02lu", hrs, mins, secs); + time = break_time(activities_stats[projects].total_seconds); + snprintf(activities_stats[projects].seconds_str, sizeof(activities_stats[projects].seconds_str), "%02lu:%02lu:%02lu", time.hours, time.minutes, time.seconds); if(activity_button((padding_x*3)+(width*2), 60, width, (window_h-70), "Projects", activities_stats[projects].seconds_str, font_size, YELLOW)) { if(activities[current_activity].activity != projects) { printf("Activity PROJECTS\n"); @@ -257,10 +264,8 @@ int main(int argc, char *argv[]) } } - hrs = activities_stats[gaming].total_seconds / 60 / 60; - mins = activities_stats[gaming].total_seconds / 60; - secs = activities_stats[gaming].total_seconds - (60 * mins); - snprintf(activities_stats[gaming].seconds_str, sizeof(activities_stats[gaming].seconds_str), "%02lu:%02lu:%02lu", hrs, mins, secs); + time = break_time(activities_stats[gaming].total_seconds); + snprintf(activities_stats[gaming].seconds_str, sizeof(activities_stats[gaming].seconds_str), "%02lu:%02lu:%02lu", time.hours, time.minutes, time.seconds); if(activity_button((padding_x*4)+(width*3), 60, width, (window_h-70), "Gaming", activities_stats[gaming].seconds_str, font_size, GREEN)) { if(activities[current_activity].activity != gaming) { printf("Activity GAMING\n"); @@ -274,10 +279,8 @@ int main(int argc, char *argv[]) } } - hrs = activities_stats[exercise].total_seconds / 60 / 60; - mins = activities_stats[exercise].total_seconds / 60; - secs = activities_stats[exercise].total_seconds - (60 * mins); - snprintf(activities_stats[exercise].seconds_str, sizeof(activities_stats[exercise].seconds_str), "%02lu:%02lu:%02lu", hrs, mins, secs); + time = break_time(activities_stats[exercise].total_seconds); + snprintf(activities_stats[exercise].seconds_str, sizeof(activities_stats[exercise].seconds_str), "%02lu:%02lu:%02lu", time.hours, time.minutes, time.seconds); if(activity_button((padding_x*5)+(width*4), 60, width, (window_h-70), "Exercise", activities_stats[exercise].seconds_str, font_size, PURPLE)) { if(activities[current_activity].activity != exercise) { printf("Activity EXERCISE\n");