#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)
{
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;
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