From: Bastian Dehn Date: Sun, 9 Feb 2025 08:34:41 +0000 (+0100) Subject: change weekday print directly not in struct X-Git-Tag: 1.3.5^2~10 X-Git-Url: https://gitweb.hhaalo.de/?a=commitdiff_plain;h=8fda091de0c60ea44831a9e2757058ca45fc937c;p=feierabend.git change weekday print directly not in struct --- diff --git a/src/feierabend.c b/src/feierabend.c index 233e214..ef60868 100644 --- a/src/feierabend.c +++ b/src/feierabend.c @@ -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); diff --git a/src/feierabend.h b/src/feierabend.h index c41bfa7..ef09e76 100644 --- a/src/feierabend.h +++ b/src/feierabend.h @@ -12,7 +12,6 @@ typedef struct { struct tm* now_tm; struct tm* begin_tm; struct tm* work_end_tm; - char* weekday; char* timestr; } feierabend; diff --git a/src/time_format.c b/src/time_format.c index 6fd3c96..e7e1433 100644 --- a/src/time_format.c +++ b/src/time_format.c @@ -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; } } diff --git a/src/time_format.h b/src/time_format.h index 1086c62..54830de 100644 --- a/src/time_format.h +++ b/src/time_format.h @@ -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); diff --git a/src/xml.c b/src/xml.c index de0e524..4c851ac 100644 --- 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; } diff --git a/tests/time_format_tests.c b/tests/time_format_tests.c index 12d8cdd..46d081e 100644 --- a/tests/time_format_tests.c +++ b/tests/time_format_tests.c @@ -1,10 +1,10 @@ -#define UNIT_TESTING #include #include #include #include #include #include +#include #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");