}
if (strcmp(argv[1], "init") == 0) {
- init_time_acount();
+ if (argc == 2) {
+ init_time_acount(0, 0);
+ return 0;
+ }
+
+ if (argc < 4) {
+ printf("ERROR: %s init [<salod_hour> <saldo_min>]\n", argv[0]);
+ return 1;
+ }
+
+ init_time_acount(atoi(argv[2]), atoi(argv[3]));
return 0;
}
return timestr;
}
+char* get_time_str_from_int(const uint8_t hour, const uint8_t min)
+{
+ 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", hour, min);
+
+ return timestr;
+}
+
time_t get_seconds_from_str(const char* timestr)
{
char* str = malloc(sizeof(char) * 7);
char* get_weekday_short_str(const uint8_t wday);
char* get_date_str(const struct tm date);
char* get_time_str_from_tm(const struct tm time);
+char* get_time_str_from_int(const uint8_t hour, const uint8_t min);
time_t get_seconds_from_str(const char* timestr);
uint16_t get_year_from_str(const char* date);
xmlTextWriterEndElement(xmlWriter);
}
-void init_time_acount()
+void init_time_acount(const uint8_t hour, const uint8_t min)
{
xmlCharEncodingHandlerPtr encodingHandler = xmlGetCharEncodingHandler(XML_CHAR_ENCODING_UTF8);
xmlOutputBufferPtr xmloutbuffer = xmlOutputBufferCreateFd(1, encodingHandler);
_write_element(xmlWriter, "zeitkonto");
- xmlChar* xmlElemName = xmlCharStrdup("anfangssaldo");
- xmlElemContent = xmlCharStrdup("00:00");
- xmlTextWriterWriteAttribute(xmlWriter, xmlElemName, xmlElemContent);
- free(xmlElemName);
- xmlElemName = NULL;
- free(xmlElemContent);
- xmlElemContent = NULL;
+ char* timestr = get_time_str_from_int(hour, min);
+ _write_attribute(xmlWriter, "anfangssaldo", ×tr);
xmlTextWriterEndElement(xmlWriter);
xmlTextWriterEndDocument(xmlWriter);
free(xmlElemContent);
xmlElemContent = NULL;
- free(xmlElemName);
- xmlElemName = NULL;
}
void add_entry(const char* date,
size_t size;
} mem_file_t;
-void init_time_acount();
+void init_time_acount(const uint8_t hour, const uint8_t min);
void add_entry(const char* date,
const uint8_t begin_hour,
const uint8_t begin_min,
timestr = NULL;
}
+void get_time_str_from_four_nine_test()
+{
+ char* timestr = get_time_str_from_int(4, 9);
+
+ assert_string_equal(timestr, "04:09");
+
+ free(timestr),
+ timestr = NULL;
+}
+
+void get_time_str_from_twenty_three_fity_nine_test()
+{
+ char* timestr = get_time_str_from_int(23, 59);
+
+ assert_string_equal(timestr, "23:59");
+
+ free(timestr),
+ timestr = NULL;
+}
+
int main()
{
const struct CMUnitTest tests[] = {
cmocka_unit_test(get_month_from_date_test),
cmocka_unit_test(get_dat_from_date_test),
cmocka_unit_test(get_date_str_from_tm_test),
- cmocka_unit_test(get_time_str_from_tm_test)
+ cmocka_unit_test(get_time_str_from_tm_test),
+ cmocka_unit_test(get_time_str_from_four_nine_test),
+ cmocka_unit_test(get_time_str_from_twenty_three_fity_nine_test)
};
return cmocka_run_group_tests(tests, NULL, NULL);