]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
change get overtime str
authorBastian Dehn <hhaalo@arcor.de>
Sat, 14 Feb 2026 10:36:33 +0000 (11:36 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sat, 14 Feb 2026 10:36:33 +0000 (11:36 +0100)
src/time_format.c
src/time_format.h
src/xml.c
tests/time_format_tests.c

index 717ac67b0e0508ab0a704342a3480a7c855c3908..586339b8a49347f5c1c56c04037799026f315e0a 100644 (file)
@@ -42,20 +42,9 @@ char* get_time_str(time_t timediff)
        return timestr;
 }
 
-void get_time_str_overtime(time_t timediff, char* timestr)
+char* get_time_str_overtime(time_t timediff)
 {
-       int8_t hour = timediff / ONE_HOUR;
-       int16_t rest_minutes = timediff % ONE_HOUR;
-       int8_t minutes = rest_minutes / MINUTE;
-
-       if (timediff < 1) {
-               hour *= -1;
-               minutes *= -1;
-               sprintf(timestr, "%02d:%02d", hour, minutes);
-               return;
-       }
-
-       sprintf(timestr, "-%02d:%02d", hour, minutes);
+       return get_time_str(timediff * -1);
 }
 
 time_t get_seconds_from_string(const char* timestr)
index 06f3f06d578235850f4a1cc0e38686ab9309feb3..2d224ab78727ce8e19c515747ab2d87905323295 100644 (file)
@@ -5,7 +5,7 @@
 #include <time.h>
 
 char* get_time_str(time_t timediff);
-void get_time_str_overtime(time_t timediff, char* timestr);
+char* get_time_str_overtime(time_t timediff);
 time_t get_seconds_from_string(const char* timestr);
 char* get_weekday_str(uint8_t wday);
 char* get_short_weekday(uint8_t wday);
index 1321cdf4038103a1eecddb5664b97ef3c6987822..99f2ea01ea6a1ac899333a5c905d26dd134270d7 100644 (file)
--- a/src/xml.c
+++ b/src/xml.c
@@ -254,11 +254,12 @@ void write_entry_node(xmlTextWriterPtr xmlWriter,
        free(xmlElemContent);
        xmlElemContent = NULL;
 
-       get_time_str_overtime(overtime, value);
+       char* overtimestr = get_time_str_overtime(overtime);
        xmlElemName = xmlCharStrdup("stunden");
        xmlElemContent = xmlCharStrdup(value);
        xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent);
-       memset(value, 0, MAX_STRING_LENGTH);
+       free(overtimestr);
+       overtimestr = NULL;
        free(xmlElemName);
        xmlElemName = NULL;
        free(xmlElemContent);
index 89341914cdedfa746989d57bed90a7f176e2330d..326ea8ce0715d6ffd89eba85860ea2856837a919 100644 (file)
@@ -46,73 +46,49 @@ void get_minus_five_minutes()
 void get_zero_hour_and_fifteen_minutes_overtime()
 {
        time_t time = 900;
-       char* timestring = malloc(sizeof(char) * 7);
 
-       if (timestring == NULL)
-               return;
+       char* timestr = get_time_str_overtime(time);
 
-       memset(timestring, 0, 7);
+       assert_string_equal(timestr, "-00:15");
 
-       get_time_str_overtime(time, timestring);
-
-       assert_string_equal(timestring, "-00:15");
-
-       free(timestring);
-       timestring = NULL;
+       free(timestr);
+       timestr = NULL;
 }
 
 void get_five_hour_fourty_five_overtime()
 {
        time_t time = 20700;
-       char* timestring = malloc(sizeof(char) * 7);
 
-       if (timestring == NULL)
-               return;
+       char* timestr = get_time_str_overtime(time);
 
-       memset(timestring, 0, 7);
+       assert_string_equal(timestr, "-05:45");
 
-       get_time_str_overtime(time, timestring);
-
-       assert_string_equal(timestring, "-05:45");
-
-       free(timestring);
-       timestring = NULL;
+       free(timestr);
+       timestr = NULL;
 }
 
 void get_minus_five_minutes_overtime()
 {
        time_t time = -300;
-       char* timestring = malloc(sizeof(char) * 7);
 
-       if (timestring == NULL)
-               return;
+       char* timestr = get_time_str_overtime(time);
 
-       memset(timestring, 0, 7);
+       assert_string_equal(timestr, "00:05");
 
-       get_time_str_overtime(time, timestring);
-
-       assert_string_equal(timestring, "00:05");
-
-       free(timestring);
-       timestring = NULL;
+       free(timestr);
+       timestr = NULL;
 }
 
 void get_zero_overtime()
 {
        time_t time = 0;
-       char* timestring = malloc(sizeof(char) * 7);
 
-       if (timestring == NULL)
-               return;
+       char* timestr = get_time_str_overtime(time);
 
-       memset(timestring, 0, 7);
+       assert_string_equal(timestr, "00:00");
 
-       get_time_str_overtime(time, timestring);
-
-       assert_string_equal(timestring, "00:00");
-
-       free(timestring);
-       timestring = NULL;
+       free(timestr);
+       timestr = NULL;
 }
 
 void get_thursday()