#define MAX_TIME_STR_LENGTH 7
-feierabend* _feierabend_init()
-{
- feierabend* fabend = malloc(sizeof(feierabend));
-
- if (fabend == NULL)
- return NULL;
-
- 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));
-
- return fabend;
-}
-
-void _feierabend_free(feierabend* fabend)
-{
- free(fabend->now);
- fabend->now = NULL;
- free(fabend->begin);
- 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;
-}
-
void _print_german_long_date(const struct tm* time_info)
{
char* weekday = get_weekday_str(time_info->tm_wday);
weekday = NULL;
}
-void _set_time(time_t* value, struct tm* tm_value, int hour, int minutes)
+time_t _set_time(time_t value, struct tm* tm_value, int hour, int minutes)
{
- time(value);
+ time(&value);
- localtime_r(value, tm_value);
+ localtime_r(&value, tm_value);
tm_value->tm_hour = hour;
tm_value->tm_min = minutes;
- *value = mktime(tm_value);
+ return mktime(tm_value);
}
void _print_work_begin(const feierabend* fabend)
if (timestr == NULL)
return;
- *fabend->worktime = get_brutto_worktime(*fabend->begin, *fabend->now);
- get_time_str(*fabend->worktime, timestr);
+ fabend->worktime = get_brutto_worktime(fabend->begin, fabend->now);
+ get_time_str(fabend->worktime, timestr);
printf("%-26s%6s\n", "Brutto Arbeitzeit:", timestr);
free(timestr);
if (timestr == NULL)
return;
- *fabend->worktime = get_current_worktime(*fabend->begin, *fabend->now);
- get_time_str(*fabend->worktime, timestr);
+ fabend->worktime = get_current_worktime(fabend->begin, fabend->now);
+ get_time_str(fabend->worktime, timestr);
printf("%-26s%6s\n", "Netto Arbeitzeit:", timestr);
free(timestr);
if (timestr == NULL)
return;
- *fabend->worktime = get_brutto_worktime(*fabend->begin, *fabend->now);
- *fabend->worktime = get_break_time(*fabend->worktime);
- get_time_str(*fabend->worktime, timestr);
+ fabend->worktime = get_brutto_worktime(fabend->begin, fabend->now);
+ fabend->worktime = get_break_time(fabend->worktime);
+ get_time_str(fabend->worktime, timestr);
printf("%-26s%6s\n", "Aktuelle Pausenzeit:", timestr);
free(timestr);
if (timestr == NULL)
return;
- *fabend->worktime = get_current_worktime_diff_to_end_eight_hour(*fabend->begin, *fabend->now);
- get_time_str(*fabend->worktime, timestr);
+ fabend->worktime = get_current_worktime_diff_to_end_eight_hour(fabend->begin, fabend->now);
+ get_time_str(fabend->worktime, timestr);
printf("Arbeitzeit bis %02d:%02d Std: %6s\n",
SOLL_HOUR,
SOLL_MINUTES,
if (timestr == NULL)
return;
- *fabend->worktime = get_current_worktime_diff_to_end_ten_hour(*fabend->begin, *fabend->now);
- get_time_str(*fabend->worktime, timestr);
+ fabend->worktime = get_current_worktime_diff_to_end_ten_hour(fabend->begin, fabend->now);
+ get_time_str(fabend->worktime, timestr);
printf("Arbeitzeit bis 10:00 Std: %6s\n", timestr);
free(timestr);
}
}
- feierabend* fabend = _feierabend_init();
+ feierabend* fabend = feierabend_init();
printf("Version: %s\n\n", PROJECT_VERSION);
- _set_time(fabend->begin, fabend->begin_tm, atoi(argv[1]), atoi(argv[2]));
+ fabend->begin = _set_time(fabend->begin, fabend->begin_tm, atoi(argv[1]), atoi(argv[2]));
- time(fabend->now);
- localtime_r(fabend->now, fabend->now_tm);
+ time(&fabend->now);
+ localtime_r(&fabend->now, fabend->now_tm);
if (argc == 5)
- _set_time(fabend->now, fabend->now_tm, atoi(argv[3]), atoi(argv[4]));
+ fabend->now = _set_time(fabend->now, fabend->now_tm, atoi(argv[3]), atoi(argv[4]));
- *fabend->worktime = get_eight_hour_end_worktime(*fabend->begin);
- localtime_r(fabend->worktime, fabend->work_end_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);
+ fabend->worktime = get_ten_hour_end_worktime(fabend->begin);
+ localtime_r(&fabend->worktime, fabend->max_work_end_tm);
_print_time_now(fabend);
printf("\n");
_print_time_to_end_worktime(fabend);
_print_time_to_max_end_worktime(fabend);
- _feierabend_free(fabend);
+ feierabend_free(fabend);
free(fabend);
fabend = NULL;
mem->size = NULL;
}
-feierabend* feierabend_init()
-{
- feierabend* fabend = malloc(sizeof(feierabend));
-
- if (fabend == NULL)
- return NULL;
-
- fabend->now = malloc(sizeof(time_t));
- fabend->begin = malloc(sizeof(time_t));
- fabend->worktime = malloc(sizeof(time_t));
-
- return fabend;
-}
-
-void feierabend_free(feierabend* fabend)
-{
- free(fabend->now);
- fabend->now = NULL;
- free(fabend->begin);
- fabend->begin = NULL;
- free(fabend->worktime);
- fabend->worktime = NULL;
-}
-
void readStdInIntoMemory(memFile* mem)
{
char* buf = malloc(sizeof(char));
free(xmlElemName);
xmlElemName = NULL;
- time(fabend->now);
- fabend->now_tm = gmtime(fabend->now);
+ time(&fabend->now);
+ fabend->now_tm = gmtime(&fabend->now);
if (date != NULL) {
fabend->now_tm->tm_year = get_year_from_str(date) - 1900;
fabend->now_tm->tm_mon = get_month_from_str(date) - 1;
}
fabend->now_tm->tm_hour = end_hour;
fabend->now_tm->tm_min = end_min;
- *fabend->now = mktime(fabend->now_tm);
+ fabend->now = mktime(fabend->now_tm);
char* value = get_short_weekday(fabend->now_tm->tm_wday);
xmlElemName = xmlCharStrdup("wochentag");
xmlElemContent = xmlCharStrdup(value);
free(xmlElemContent);
xmlElemContent = NULL;
- time(fabend->begin);
- fabend->begin_tm = gmtime(fabend->begin);
+ time(&fabend->begin);
+ fabend->begin_tm = gmtime(&fabend->begin);
if (date != NULL) {
fabend->begin_tm->tm_year = get_year_from_str(date) - 1900;
fabend->begin_tm->tm_mon = get_month_from_str(date) - 1;
sprintf(value, "%02d:%02d",
fabend->begin_tm->tm_hour,
fabend->begin_tm->tm_min);
- *fabend->begin = mktime(fabend->begin_tm);
+ fabend->begin = mktime(fabend->begin_tm);
xmlElemName = xmlCharStrdup("begin");
xmlElemContent = xmlCharStrdup(value);
xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent);
free(xmlElemContent);
xmlElemContent = NULL;
- *fabend->worktime = get_eight_hour_end_worktime(*fabend->begin);
- fabend->work_end_tm = gmtime(fabend->worktime);
+ fabend->worktime = get_eight_hour_end_worktime(fabend->begin);
+ fabend->work_end_tm = gmtime(&fabend->worktime);
if (date != NULL) {
fabend->work_end_tm->tm_year = get_year_from_str(date) - 1900;
fabend->work_end_tm->tm_mon = get_month_from_str(date) - 1;
free(xmlElemContent);
xmlElemContent = NULL;
- *fabend->worktime = get_brutto_worktime(*fabend->begin, *fabend->now);
- time_t breaktime = get_break_time(*fabend->worktime);
+ fabend->worktime = get_brutto_worktime(fabend->begin, fabend->now);
+ time_t breaktime = get_break_time(fabend->worktime);
get_time_str(breaktime, value);
xmlElemName = xmlCharStrdup("pause");
xmlElemContent = xmlCharStrdup(value);
free(xmlElemContent);
xmlElemContent = NULL;
- *fabend->worktime = get_current_worktime(*fabend->begin, *fabend->now);
- get_time_str(*fabend->worktime, value);
+ fabend->worktime = get_current_worktime(fabend->begin, fabend->now);
+ get_time_str(fabend->worktime, value);
xmlElemName = xmlCharStrdup("arbeitszeit");
xmlElemContent = xmlCharStrdup(value);
xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent);
free(xmlElemContent);
xmlElemContent = NULL;
- *fabend->worktime = get_current_worktime_diff_to_end_eight_hour(*fabend->begin, *fabend->now);
- get_time_str_overtime(*fabend->worktime, value);
+ fabend->worktime = get_current_worktime_diff_to_end_eight_hour(fabend->begin, fabend->now);
+ get_time_str_overtime(fabend->worktime, value);
xmlElemName = xmlCharStrdup("stunden");
xmlElemContent = xmlCharStrdup(value);
xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent);
free(xmlElemContent);
xmlElemContent = NULL;
- *fabend->worktime *= -1;
- *fabend->worktime += last_saldo;
- get_time_str(*fabend->worktime, value);
+ fabend->worktime *= -1;
+ fabend->worktime += last_saldo;
+ get_time_str(fabend->worktime, value);
xmlElemName = xmlCharStrdup("saldo");
xmlElemContent = xmlCharStrdup(value);
xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent);