#define ONE_HOUR 3600
#define MINUTE 60
-#define MAX_TIME_STR_LENGTH 9
+#define MAX_TIME_STR_LENGTH 36
char* _strdup(const char* str)
{
}
}
+char* get_date_str(struct tm date)
+{
+ char* datestr = malloc(sizeof(char) * MAX_TIME_STR_LENGTH);
+ if (datestr == NULL)
+ return NULL;
+
+ memset(datestr, 0, MAX_TIME_STR_LENGTH);
+
+ sprintf(datestr, "%04d-%02d-%02d",
+ date.tm_year + 1900,
+ date.tm_mon + 1,
+ date.tm_mday);
+
+ return datestr;
+}
+
+char* get_time_str_from_tm(struct tm time)
+{
+ char* timestr = malloc(sizeof(char) * MAX_TIME_STR_LENGTH);
+ if (timestr == NULL)
+ return NULL;
+
+ memset(timestr, 0, MAX_TIME_STR_LENGTH);
+
+ sprintf(timestr, "%02d:%02d",
+ time.tm_hour,
+ time.tm_min);
+
+ return timestr;
+}
+
uint16_t get_year_from_str(const char* date)
{
uint16_t value = 0;
free(xmlElemName);
xmlElemName = NULL;
- char* value = get_weekday_short_str(end_tm.tm_wday);
+ char* wday_short_str = get_weekday_short_str(end_tm.tm_wday);
xmlElemName = xmlCharStrdup("wochentag");
- xmlElemContent = xmlCharStrdup(value);
+ xmlElemContent = xmlCharStrdup(wday_short_str);
xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent);
- free(value);
- value = NULL;
+ free(wday_short_str);
+ wday_short_str = NULL;
free(xmlElemName);
xmlElemName = NULL;
free(xmlElemContent);
xmlElemContent = NULL;
- value = malloc(sizeof(char) * MAX_STRING_LENGTH);
- sprintf(value, "%04d-%02d-%02d",
- begin_tm.tm_year + 1900,
- begin_tm.tm_mon + 1,
- begin_tm.tm_mday);
+ char* datestr = get_date_str(begin_tm);
xmlElemName = xmlCharStrdup("datum");
- xmlElemContent = xmlCharStrdup(value);
+ xmlElemContent = xmlCharStrdup(datestr);
xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent);
- memset(value, 0, MAX_STRING_LENGTH);
+ free(datestr);
+ datestr = NULL;
free(xmlElemName);
xmlElemName = NULL;
free(xmlElemContent);
xmlElemContent = NULL;
- sprintf(value, "%02d:%02d",
- begin_tm.tm_hour,
- begin_tm.tm_min);
+ char* begin_str = get_time_str_from_tm(begin_tm);
xmlElemName = xmlCharStrdup("begin");
- xmlElemContent = xmlCharStrdup(value);
+ xmlElemContent = xmlCharStrdup(begin_str);
xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent);
- memset(value, 0, MAX_STRING_LENGTH);
+ free(begin_str);
+ begin_str = NULL;
free(xmlElemName);
xmlElemName = NULL;
free(xmlElemContent);
xmlElemContent = NULL;
- sprintf(value, "%02d:%02d",
- end_tm.tm_hour,
- end_tm.tm_min);
+ char* end_str = get_time_str_from_tm(end_tm);
xmlElemName = xmlCharStrdup("ende");
- xmlElemContent = xmlCharStrdup(value);
+ xmlElemContent = xmlCharStrdup(end_str);
xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent);
- memset(value, 0, MAX_STRING_LENGTH);
+ free(end_str);
+ end_str = NULL;
free(xmlElemName);
xmlElemName = NULL;
free(xmlElemContent);
char* overtimestr = get_time_overtime_str(overtime);
xmlElemName = xmlCharStrdup("stunden");
- xmlElemContent = xmlCharStrdup(value);
+ xmlElemContent = xmlCharStrdup(overtimestr);
xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent);
free(overtimestr);
overtimestr = NULL;
xmlTextWriterEndElement(xmlWriter);
- free(value);
- value = NULL;
free(xmlElemContent);
xmlElemContent = NULL;
free(xmlElemName);