fabend->now = malloc(sizeof(time_t));
fabend->begin = malloc(sizeof(time_t));
fabend->worktime = malloc(sizeof(time_t));
+ fabend->now_tm = malloc(sizeof(struct tm));
+ fabend->begin_tm = malloc(sizeof(struct tm));
+ fabend->work_end_tm = malloc(sizeof(struct tm));
+ fabend->max_work_end_tm = malloc(sizeof(struct tm));
fabend->timestr = malloc(sizeof(char) * MAX_TIME_STR_LENGTH);
return fabend;
fabend->begin = NULL;
free(fabend->worktime);
fabend->worktime = NULL;
+ free(fabend->now_tm);
+ fabend->now_tm = NULL;
+ free(fabend->begin_tm);
+ fabend->begin_tm = NULL;
+ free(fabend->work_end_tm);
+ fabend->work_end_tm = NULL;
+ free(fabend->max_work_end_tm);
+ fabend->max_work_end_tm = NULL;
free(fabend->timestr);
fabend->timestr = NULL;
}
printf("Version: %s\n\n", PROJECT_VERSION);
time(fabend->begin);
- fabend->begin_tm = localtime(fabend->begin);
+ localtime_r(fabend->begin, fabend->begin_tm);
fabend->begin_tm->tm_hour = atoi(argv[1]);
fabend->begin_tm->tm_min = atoi(argv[2]);
*fabend->begin = mktime(fabend->begin_tm);
- printf("%-27s", "Arbeitsbeginn:");
- print_german_long_date(fabend->begin_tm);
- printf("\n");
time(fabend->now);
- fabend->now_tm = localtime(fabend->now);
+ localtime_r(fabend->now, fabend->now_tm);
if (argc == 5) {
fabend->now_tm->tm_hour = atoi(argv[3]);
fabend->now_tm->tm_min = atoi(argv[4]);
*fabend->now = mktime(fabend->now_tm);
}
+
+ *fabend->worktime = get_eight_hour_end_worktime(*fabend->begin);
+ localtime_r(fabend->worktime, fabend->work_end_tm);
+
+ *fabend->worktime = get_ten_hour_end_worktime(*fabend->begin);
+ localtime_r(fabend->worktime, fabend->max_work_end_tm);
+
+ printf("%-27s", "Arbeitsbeginn:");
+ print_german_long_date(fabend->begin_tm);
+ printf("\n");
+
printf("%-27s", "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("%s %02d:%02d %-9s", "Arbeitsende",
SOLL_HOUR,
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("%-27s", "Arbeitsende 10:00 Std:");
- print_german_long_date(fabend->work_end_tm);
+ print_german_long_date(fabend->max_work_end_tm);
printf("\n");
printf("\n");