From: Bastian Dehn Date: Sat, 14 Feb 2026 10:36:33 +0000 (+0100) Subject: change get overtime str X-Git-Tag: 1.3.12^2~16 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=b67f7a2a618f9dda0e892ce124ffe9e742a03aa2;p=feierabend.git change get overtime str --- diff --git a/src/time_format.c b/src/time_format.c index 717ac67..586339b 100644 --- a/src/time_format.c +++ b/src/time_format.c @@ -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) diff --git a/src/time_format.h b/src/time_format.h index 06f3f06..2d224ab 100644 --- a/src/time_format.h +++ b/src/time_format.h @@ -5,7 +5,7 @@ #include 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); diff --git a/src/xml.c b/src/xml.c index 1321cdf..99f2ea0 100644 --- 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); diff --git a/tests/time_format_tests.c b/tests/time_format_tests.c index 8934191..326ea8c 100644 --- a/tests/time_format_tests.c +++ b/tests/time_format_tests.c @@ -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()