From dc2b23e6d25ffb325bcae5363ad581dd741bf410 Mon Sep 17 00:00:00 2001 From: Bastian Dehn Date: Sun, 22 Feb 2026 10:40:01 +0100 Subject: [PATCH] change refactor print methods --- src/feierabend.c | 112 +++++++++++++++++++---------------------------- 1 file changed, 45 insertions(+), 67 deletions(-) diff --git a/src/feierabend.c b/src/feierabend.c index 7b1eef1..d468f86 100644 --- a/src/feierabend.c +++ b/src/feierabend.c @@ -8,6 +8,18 @@ #define MONTH_CORRECTION 1 #define EPOCH_ZERO 1900 +#define MAX_HOUR 10 +#define MAX_MINUTES 0 + +#define WORK_BEGIN "Arbeitsbeginn" +#define CURRENT_TIME "Aktuelle Zeit" +#define WORK_END "Arbeitsende" +#define HOUR "Std" + +#define BRUTTO_WORKTIME "Brutto Arbeitszeit" +#define NETTO_WORKTIME "Netto Arbeitszeit" +#define BREAK_TIME "Pausenzeit" +#define WORKTIME_TO "Arbeitszeit bis" void _print_german_long_date(const struct tm time_info) { @@ -25,85 +37,51 @@ void _print_german_long_date(const struct tm time_info) weekday = NULL; } -void _print_work_begin(const struct tm begin_tm) -{ - printf("%-27s", "Arbeitsbeginn:"); - _print_german_long_date(begin_tm); - printf("\n"); -} - -void _print_time_now(const struct tm now_tm) -{ - printf("%-27s", "Aktuelle Zeit:"); - _print_german_long_date(now_tm); - printf("\n"); -} - -void _print_work_end(const struct tm work_end_tm) +void _print_long_date_time(const char* label, const struct tm time_tm) { - printf("%s %02d:%02d %-9s", "Arbeitsende", - SOLL_HOUR, - SOLL_MINUTES, - "Std:"); - _print_german_long_date(work_end_tm); + printf("%-27s", label); + _print_german_long_date(time_tm); printf("\n"); } -void _print_max_work_end(const struct tm max_work_end_tm) +void _print_long_work_end_time(const uint8_t soll_hour, + const uint8_t soll_minutes, + const struct tm time_tm) { - printf("%-27s", "Arbeitsende 10:00 Std:"); - _print_german_long_date(max_work_end_tm); + printf("%s %02d:%02d %-9s", + WORK_END, + soll_hour, + soll_minutes, + HOUR); + _print_german_long_date(time_tm); printf("\n"); } -void _print_brutto_worktime(const time_t brutto_worktime) -{ - char* timestr = get_time_str(brutto_worktime); - printf("%-26s%6s\n", "Brutto Arbeitzeit:", timestr); - - free(timestr); - timestr = NULL; -} - -void _print_netto_worktime(const time_t netto_worktime) -{ - char* timestr = get_time_str(netto_worktime); - printf("%-26s%6s\n", "Netto Arbeitzeit:", timestr); - - free(timestr); - timestr = NULL; -} - -void _print_current_breaktime(const time_t break_time) +void _print_time(const char* label, const time_t time) { - char* timestr = get_time_str(break_time); - printf("%-26s%6s\n", "Aktuelle Pausenzeit:", timestr); + char* timestr = get_time_str(time); + printf("%-26s%6s\n", label, timestr); free(timestr); timestr = NULL; } -void _print_time_to_end_worktime(const time_t diff_to_end) +void _print_time_to_end(const uint8_t soll_hour, + const uint8_t soll_minutes, + const time_t time) { - char* timestr = get_time_str(diff_to_end); - printf("Arbeitzeit bis %02d:%02d Std: %6s\n", - SOLL_HOUR, - SOLL_MINUTES, + char* timestr = get_time_str(time); + printf("%s %02d:%02d %s %6s\n", + WORKTIME_TO, + soll_hour, + soll_minutes, + HOUR, timestr); free(timestr); timestr = NULL; } -void _print_time_to_max_end_worktime(const time_t diff_to_max_end) -{ - char* timestr = get_time_str(diff_to_max_end); - printf("Arbeitzeit bis 10:00 Std: %6s\n", timestr); - - free(timestr); - timestr = NULL; -} - struct tm _get_tm_from_time(const time_t time) { struct tm tm_value; @@ -168,21 +146,21 @@ int main(const int argc, const char* argv[]) const time_t diff_to_end = get_current_worktime_diff_to_end_eight_hour(begin, now); const time_t diff_to_max_end = get_current_worktime_diff_to_end_ten_hour(begin, now); - _print_time_now(now_tm); + _print_long_date_time(CURRENT_TIME, now_tm); printf("\n"); - _print_work_begin(begin_tm); - _print_work_end(work_eight_end_tm); - _print_max_work_end(max_work_end_tm); + _print_long_date_time(WORK_BEGIN, begin_tm); + _print_long_work_end_time(SOLL_HOUR, SOLL_MINUTES, work_eight_end_tm); + _print_long_work_end_time(MAX_HOUR, MAX_MINUTES, max_work_end_tm); printf("\n"); - _print_brutto_worktime(brutto_worktime); - _print_netto_worktime(netto_worktime); - _print_current_breaktime(break_time); + _print_time(BRUTTO_WORKTIME, brutto_worktime); + _print_time(NETTO_WORKTIME, netto_worktime); + _print_time(BREAK_TIME, break_time); printf("\n"); - _print_time_to_end_worktime(diff_to_end); - _print_time_to_max_end_worktime(diff_to_max_end); + _print_time_to_end(SOLL_HOUR, SOLL_MINUTES, diff_to_end); + _print_time_to_end(MAX_HOUR, MAX_MINUTES, diff_to_max_end); return EXIT_SUCCESS; } \ No newline at end of file -- 2.47.3