if (seconds < 30) scratch_time.unit.minute = floor(minutes);
else scratch_time.unit.minute = ceil(minutes);
+ // Handle hour overflow from timezone conversion
+ while (scratch_time.unit.hour >= 24) {
+ scratch_time.unit.hour -= 24;
+ // Increment day (this will be handled by the date arithmetic)
+ uint32_t timestamp = watch_utility_date_time_to_unix_time(scratch_time, 0);
+ timestamp += 86400;
+ scratch_time = watch_utility_date_time_from_unix_time(timestamp, 0);
+ }
+
if (scratch_time.unit.minute == 60) {
scratch_time.unit.minute = 0;
scratch_time.unit.hour = (scratch_time.unit.hour + 1) % 24;
if (seconds < 30) scratch_time.unit.minute = floor(minutes);
else scratch_time.unit.minute = ceil(minutes);
+ // Handle hour overflow from timezone conversion
+ while (scratch_time.unit.hour >= 24) {
+ scratch_time.unit.hour -= 24;
+ // Increment day (this will be handled by the date arithmetic)
+ uint32_t timestamp = watch_utility_date_time_to_unix_time(scratch_time, 0);
+ timestamp += 86400;
+ scratch_time = watch_utility_date_time_from_unix_time(timestamp, 0);
+ }
+
if (scratch_time.unit.minute == 60) {
scratch_time.unit.minute = 0;
scratch_time.unit.hour = (scratch_time.unit.hour + 1) % 24;