return 1;
}
- time_t now = 0;
- time_t begin = 0;
- time_t worktime = 0;
- struct tm now_tm;
- struct tm begin_tm;
- struct tm work_end_tm;
- char weekday[11];
- char timestr[7];
+ time_t* now = malloc(sizeof(time_t));
+ time_t* begin = malloc(sizeof(time_t));
+ time_t* worktime = malloc(sizeof(time_t));
+ struct tm* now_tm = malloc(sizeof(struct tm));
+ struct tm* begin_tm = malloc(sizeof(struct tm));
+ struct tm* work_end_tm = malloc(sizeof(struct tm));
+ char* weekday = malloc(sizeof(char) * 11);
+ char* timestr = malloc(sizeof(char) * 7);
printf("Version: %s\n\n", PROJECT_VERSION);
- time(&begin);
- localtime_r(&begin, &begin_tm);
- begin_tm.tm_hour = atoi(argv[1]);
- begin_tm.tm_min = atoi(argv[2]);
- begin = timelocal(&begin_tm);
+ time(begin);
+ localtime_r(begin, begin_tm);
+ begin_tm->tm_hour = atoi(argv[1]);
+ begin_tm->tm_min = atoi(argv[2]);
+ *begin = timelocal(begin_tm);
- time(&now);
- localtime_r(&now, &now_tm);
- get_weekday(now_tm.tm_wday, weekday);
+ time(now);
+ localtime_r(now, now_tm);
+ get_weekday(now_tm->tm_wday, weekday);
printf("%-25s%s %02d.%02d.%04d %02d:%02d %s\n",
"Arbeitsbeginn:",
weekday,
- begin_tm.tm_mday,
- begin_tm.tm_mon + 1,
- begin_tm.tm_year + 1900,
- begin_tm.tm_hour,
- begin_tm.tm_min,
- begin_tm.tm_zone);
+ begin_tm->tm_mday,
+ begin_tm->tm_mon + 1,
+ begin_tm->tm_year + 1900,
+ begin_tm->tm_hour,
+ begin_tm->tm_min,
+ begin_tm->tm_zone);
printf("\n");
printf("%-25s%s %02d.%02d.%04d %02d:%02d %s\n",
"Aktuelle Zeit:",
weekday,
- now_tm.tm_mday,
- now_tm.tm_mon + 1,
- now_tm.tm_year + 1900,
- now_tm.tm_hour,
- now_tm.tm_min,
- now_tm.tm_zone);
+ now_tm->tm_mday,
+ now_tm->tm_mon + 1,
+ now_tm->tm_year + 1900,
+ now_tm->tm_hour,
+ now_tm->tm_min,
+ now_tm->tm_zone);
printf("\n");
- worktime = get_eight_hour_end_worktime(begin);
- localtime_r(&worktime, &work_end_tm);
+ *worktime = get_eight_hour_end_worktime(*begin);
+ localtime_r(worktime, work_end_tm);
printf("%-25s%s %02d.%02d.%04d %02d:%02d %s\n",
"Arbeitsende 8 Std:",
weekday,
- work_end_tm.tm_mday,
- work_end_tm.tm_mon + 1,
- work_end_tm.tm_year + 1900,
- work_end_tm.tm_hour,
- work_end_tm.tm_min,
- work_end_tm.tm_zone);
-
- worktime = get_ten_hour_end_worktime(begin);
- localtime_r(&worktime, &work_end_tm);
+ work_end_tm->tm_mday,
+ work_end_tm->tm_mon + 1,
+ work_end_tm->tm_year + 1900,
+ work_end_tm->tm_hour,
+ work_end_tm->tm_min,
+ work_end_tm->tm_zone);
+
+ *worktime = get_ten_hour_end_worktime(*begin);
+ localtime_r(worktime, work_end_tm);
printf("%-25s%s %02d.%02d.%04d %02d:%02d %s\n",
"Arbeitsende 10 Std:",
weekday,
- work_end_tm.tm_mday,
- work_end_tm.tm_mon + 1,
- work_end_tm.tm_year + 1900,
- work_end_tm.tm_hour,
- work_end_tm.tm_min,
- work_end_tm.tm_zone);
+ work_end_tm->tm_mday,
+ work_end_tm->tm_mon + 1,
+ work_end_tm->tm_year + 1900,
+ work_end_tm->tm_hour,
+ work_end_tm->tm_min,
+ work_end_tm->tm_zone);
printf("\n");
- worktime = get_current_worktime(begin, now);
- get_time_str(worktime, timestr);
+ *worktime = get_current_worktime(*begin, *now);
+ get_time_str(*worktime, timestr);
printf("%-25s%s\n", "Aktuelle Arbeitzeit:", timestr);
- worktime = get_brutto_worktime(begin, now);
- worktime = get_break_time(worktime);
- get_time_str(worktime, timestr);
+ *worktime = get_brutto_worktime(*begin, *now);
+ *worktime = get_break_time(*worktime);
+ get_time_str(*worktime, timestr);
printf("%-25s%s\n", "Aktuelle Pausenzeit:", timestr);
printf("\n");
- worktime = get_current_worktime_diff_to_end_eight_hour(begin, now);
- get_time_str(worktime, timestr);
+ *worktime = get_current_worktime_diff_to_end_eight_hour(*begin, *now);
+ get_time_str(*worktime, timestr);
printf("%-25s%s\n", "Arbeitzeit bis 8 Std:", timestr);
- worktime = get_current_worktime_diff_to_end_ten_hour(begin, now);
- get_time_str(worktime, timestr);
+ *worktime = get_current_worktime_diff_to_end_ten_hour(*begin, *now);
+ get_time_str(*worktime, timestr);
printf("%-25s%s\n", "Arbeitzeit bis 10 Std:", timestr);
+ free(now);
+ now = NULL;
+ free(begin);
+ begin = NULL;
+ free(worktime);
+ worktime = NULL;
+ free(now_tm);
+ now_tm = NULL;
+ free(begin_tm);
+ begin_tm = NULL;
+ free(work_end_tm);
+ work_end_tm = NULL;
+ free(weekday);
+ weekday = NULL;
+ free(timestr);
+ timestr = NULL;
+
return 0;
}
\ No newline at end of file