]> gitweb.hhaalo.de Git - feierabend.git/commitdiff
change weekday print directly not in struct
authorBastian Dehn <hhaalo@arcor.de>
Sun, 9 Feb 2025 08:34:41 +0000 (09:34 +0100)
committerBastian Dehn <hhaalo@arcor.de>
Sun, 9 Feb 2025 08:34:41 +0000 (09:34 +0100)
src/feierabend.c
src/feierabend.h
src/time_format.c
src/time_format.h
src/xml.c
tests/time_format_tests.c

index 233e21450fab05911f781418dedc064e232db1e4..ef60868750cd017ceb9da7ce302720a0e2a08a3a 100644 (file)
@@ -5,7 +5,6 @@
 #include "break.h"
 #include "config.h"
 
-#define MAX_WEEKDAY_STR_LENGTH 11
 #define MAX_TIME_STR_LENGTH 7
 
 feierabend* feierabend_init()
@@ -15,7 +14,6 @@ feierabend* feierabend_init()
        fabend->now = malloc(sizeof(time_t));
        fabend->begin = malloc(sizeof(time_t));
        fabend->worktime = malloc(sizeof(time_t));
-       fabend->weekday = malloc(sizeof(char) * MAX_WEEKDAY_STR_LENGTH);
        fabend->timestr = malloc(sizeof(char) * MAX_TIME_STR_LENGTH);
 
        return fabend;
@@ -29,12 +27,26 @@ void feierabend_free(feierabend* fabend)
        fabend->begin = NULL;
        free(fabend->worktime);
        fabend->worktime = NULL;
-       free(fabend->weekday);
-       fabend->weekday = NULL;
        free(fabend->timestr);
        fabend->timestr = NULL;
 }
 
+void print_german_long_date(struct tm* time_info)
+{
+       char* weekday = get_weekday_str(time_info->tm_wday);
+
+       printf("%s %02d.%02d.%04d %02d:%02d",
+               weekday,
+               time_info->tm_mday,
+               time_info->tm_mon + 1,
+               time_info->tm_year + 1900,
+               time_info->tm_hour,
+               time_info->tm_min);
+
+       free(weekday);
+       weekday = NULL;
+}
+
 int main(int argc, char* argv[])
 {
        if (argc < 3 || (argc > 3 && argc < 5)) {
@@ -51,14 +63,9 @@ int main(int argc, char* argv[])
        fabend->begin_tm->tm_hour = atoi(argv[1]);
        fabend->begin_tm->tm_min = atoi(argv[2]);
        *fabend->begin = mktime(fabend->begin_tm);
-       get_weekday(fabend->begin_tm->tm_wday, fabend->weekday);
-       printf("Arbeitsbeginn:             %s %02d.%02d.%04d %02d:%02d\n",
-               fabend->weekday,
-               fabend->begin_tm->tm_mday,
-               fabend->begin_tm->tm_mon + 1,
-               fabend->begin_tm->tm_year + 1900,
-               fabend->begin_tm->tm_hour,
-               fabend->begin_tm->tm_min);
+       printf("Arbeitsbeginn:             ");
+       print_german_long_date(fabend->begin_tm);
+       printf("\n");
 
        time(fabend->now);
        fabend->now_tm = localtime(fabend->now);
@@ -67,39 +74,24 @@ int main(int argc, char* argv[])
                fabend->now_tm->tm_min = atoi(argv[4]);
                *fabend->now = mktime(fabend->now_tm);
        }
-       get_weekday(fabend->now_tm->tm_wday, fabend->weekday);
-       printf("Aktuelle Zeit:             %s %02d.%02d.%04d %02d:%02d\n",
-               fabend->weekday,
-               fabend->now_tm->tm_mday,
-               fabend->now_tm->tm_mon + 1,
-               fabend->now_tm->tm_year + 1900,
-               fabend->now_tm->tm_hour,
-               fabend->now_tm->tm_min);
-
+       printf("Aktuelle Zeit:             ");
+       print_german_long_date(fabend->now_tm);
+       printf("\n");
        printf("\n");
 
        *fabend->worktime = get_eight_hour_end_worktime(*fabend->begin);
        fabend->work_end_tm = localtime(fabend->worktime);
-       printf("Arbeitsende %02d:%02d Std:     %s %02d.%02d.%04d %02d:%02d\n",
+       printf("Arbeitsende %02d:%02d Std:     ",
                SOLL_HOUR,
-               SOLL_MINUTES,
-               fabend->weekday,
-               fabend->work_end_tm->tm_mday,
-               fabend->work_end_tm->tm_mon + 1,
-               fabend->work_end_tm->tm_year + 1900,
-               fabend->work_end_tm->tm_hour,
-               fabend->work_end_tm->tm_min);
+               SOLL_MINUTES);
+       print_german_long_date(fabend->work_end_tm);
+       printf("\n");
 
        *fabend->worktime = get_ten_hour_end_worktime(*fabend->begin);
        fabend->work_end_tm = localtime(fabend->worktime);
-       printf("Arbeitsende 10:00 Std:     %s %02d.%02d.%04d %02d:%02d\n",
-               fabend->weekday,
-               fabend->work_end_tm->tm_mday,
-               fabend->work_end_tm->tm_mon + 1,
-               fabend->work_end_tm->tm_year + 1900,
-               fabend->work_end_tm->tm_hour,
-               fabend->work_end_tm->tm_min);
-
+       printf("Arbeitsende 10:00 Std:     ");
+       print_german_long_date(fabend->work_end_tm);
+       printf("\n");
        printf("\n");
 
        *fabend->worktime = get_brutto_worktime(*fabend->begin, *fabend->now);
index c41bfa7ec5d18f39abc84d15effa780e7100ae58..ef09e7648cd7f053183452314373cbd501440b87 100644 (file)
@@ -12,7 +12,6 @@ typedef struct {
        struct tm* now_tm;
        struct tm* begin_tm;
        struct tm* work_end_tm;
-       char* weekday;
        char* timestr;
 } feierabend;
 
index 6fd3c965d8b6cfab8d26532753c1d136fd05f2b0..e7e143329f7d3ba6e28fbb0a7cc8d3d9f9590f34 100644 (file)
@@ -64,32 +64,25 @@ void get_seconds_from_string(const char* timestr, time_t* seconds)
        first_str_pos = NULL;
 }
 
-void get_weekday(int wday, char* weekday)
+char* get_weekday_str(int wday)
 {
        switch (wday) {
        case 0:
-               sprintf(weekday, "%s", "Sonntag");
-               break;
+               return strdup("Sonntag");
        case 1:
-               sprintf(weekday, "%s", "Montag");
-               break;
+               return strdup("Montag");
        case 2:
-               sprintf(weekday, "%s", "Dienstag");
-               break;
+               return strdup("Dienstag");
        case 3:
-               sprintf(weekday, "%s", "Mittwoch");
-               break;
+               return strdup("Mittwoch");
        case 4:
-               sprintf(weekday, "%s", "Donnerstag");
-               break;
+               return strdup("Donnerstag");
        case 5:
-               sprintf(weekday, "%s", "Freitag");
-               break;
+               return strdup("Freitag");
        case 6:
-               sprintf(weekday, "%s", "Samstag");
-               break;
+               return strdup("Samstag");
        default:
-               sprintf(weekday, "%s", "Unknown");
+               return strdup("Unknown");
                break;
        }
 }
index 1086c62ae6e824fe2e408b18ae231800e56224f3..54830de7c232662c1a09bccf81acce163e213920 100644 (file)
@@ -5,7 +5,8 @@
 void get_time_str(time_t timediff, char* timestr);
 void get_time_str_overtime(time_t timediff, char* timestr);
 void get_seconds_from_string(const char* timestr, time_t* seconds);
-void get_weekday(int wday, char* weekday);
+char* get_weekday_str(int wday);
+__attribute_deprecated__ void get_weekday(int wday, char* weekday);
 void get_short_weekday(int wday, char* weekday);
 int get_year_from_str(const char* date);
 int get_month_from_str(const char* date);
index de0e5245759ed8da8dd7341f94dbb78ee9720ef4..4c851ac6ea1d656e5d688168116dfbe87bc3e669 100644 (file)
--- a/src/xml.c
+++ b/src/xml.c
@@ -33,7 +33,6 @@ void init_feierabend(feierabend* fabend)
        fabend->now = malloc(sizeof(time_t));
        fabend->begin = malloc(sizeof(time_t));
        fabend->worktime = malloc(sizeof(time_t));
-       fabend->weekday = malloc(sizeof(char) * 11);
        fabend->timestr = malloc(sizeof(char) * 7);
 }
 
@@ -42,12 +41,9 @@ void free_feierabend(feierabend* fabend)
        free(fabend->now);
        free(fabend->begin);
        free(fabend->worktime);
-       free(fabend->weekday);
        free(fabend->timestr);
        fabend->now = NULL;
        fabend->begin = NULL;
-       fabend->worktime = NULL;
-       fabend->weekday = NULL;
        fabend->timestr = NULL;
 }
 
index 12d8cdd1e5585b8f37d5a1fe2976739824bcc4ae..46d081edb85346b3f8949bc06e038bac6269707d 100644 (file)
@@ -1,10 +1,10 @@
-#define UNIT_TESTING
 #include <stdarg.h>
 #include <stddef.h>
 #include <stdint.h>
 #include <setjmp.h>
 #include <cmocka.h>
 #include <string.h>
+#include <stdlib.h>
 #include "../src/time_format.h"
 
 void get_zero_hour_and_fifteen_minutes()
@@ -107,10 +107,7 @@ void get_zero_overtime()
 
 void get_thursday()
 {
-       char* weekday = malloc(sizeof(char) * 11);
-       memset(weekday, 0, 11);
-
-       get_weekday(4, weekday);
+       char* weekday = get_weekday_str(4);
 
        assert_string_equal(weekday, "Donnerstag");
 
@@ -120,10 +117,7 @@ void get_thursday()
 
 void get_friday()
 {
-       char* weekday = malloc(sizeof(char) * 11);
-       memset(weekday, 0, 11);
-
-       get_weekday(5, weekday);
+       char* weekday = get_weekday_str(5);
 
        assert_string_equal(weekday, "Freitag");
 
@@ -133,10 +127,7 @@ void get_friday()
 
 void get_saturday()
 {
-       char* weekday = malloc(sizeof(char) * 11);
-       memset(weekday, 0, 11);
-
-       get_weekday(6, weekday);
+       char* weekday = get_weekday_str(6);
 
        assert_string_equal(weekday, "Samstag");
 
@@ -146,10 +137,7 @@ void get_saturday()
 
 void get_sunday()
 {
-       char* weekday = malloc(sizeof(char) * 11);
-       memset(weekday, 0, 11);
-
-       get_weekday(0, weekday);
+       char* weekday = get_weekday_str(0);
 
        assert_string_equal(weekday, "Sonntag");
 
@@ -159,10 +147,7 @@ void get_sunday()
 
 void get_monday()
 {
-       char* weekday = malloc(sizeof(char) * 11);
-       memset(weekday, 0, 11);
-
-       get_weekday(1, weekday);
+       char* weekday = get_weekday_str(1);
 
        assert_string_equal(weekday, "Montag");
 
@@ -172,10 +157,7 @@ void get_monday()
 
 void get_thuesday()
 {
-       char* weekday = malloc(sizeof(char) * 11);
-       memset(weekday, 0, 11);
-
-       get_weekday(2, weekday);
+       char* weekday = get_weekday_str(2);
 
        assert_string_equal(weekday, "Dienstag");
 
@@ -185,10 +167,7 @@ void get_thuesday()
 
 void get_wednesday()
 {
-       char* weekday = malloc(sizeof(char) * 11);
-       memset(weekday, 0, 11);
-
-       get_weekday(3, weekday);
+       char* weekday = get_weekday_str(3);
 
        assert_string_equal(weekday, "Mittwoch");