std::string date(20, 0);
sprintf(date.c_str(), "%04d-%02d-%02dT%02d:%02d:%02dZ", y, mon, d, h, m, s);
result.date = date;
Compiler error: result.date
ist ein int32
, date
ein string
.
Kollegen gefragt, aber die Frage ist scheisse gestellt. Ein alter Assembler- und C-Kollege hört beim Kaffee trinken zufällig zu, sagt "atoi
verwenden, dann gehts".
std::string date(20, 0);
sprintf(date.c_str(), "%04d-%02d-%02dT%02d:%02d:%02dZ", y, mon, d, h, m, s);
result.date = atoi(date); // TODO fix - saves year only
atoi
hört nach dem Jahr auf, weil was soll das Minus da hinten?
Denselben Kollegen gefragt, Frage wieder scheisse gestellt, der sagt, "das atoi
kann nur Ziffern und ein optionales Minus am Anfang".
Alle -
und T
und :
weg gemacht.
std::string date(14, 0);
sprintf(date.c_str(), "%04d%02d%02d%02d%02d%02d", y, mon, d, h, m, s);
result.date = atoi(date); // TODO fix date is broken
Denselben Kollegen gefragt, der sagt, vermutlich zu lang, einfach... (denkt kurz nach) die Sekunden und die ersten zwei Ziffern vom Jahr weglassen, is eh nach 2000.
Aber unbedingt checken, ob sichs ausgeht.
Dieser letzte Satz is rätselhaft, aber jetzt keine Zeit zum nachfragen, darum danke! und schnell fixen...
std::string date(10, 0);
sprintf(date.c_str(), "%02d%02d%02d%02d%02d", y, mon, d, h, m);
result.date = atoi(date); // TODO check
Was genau checken, nicht klar, darum das // TODO
check zum später den Kollegen fragen.
Dann das // TODO check
vergessen.