2147483647

Version 1

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".

Version 2

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.

Version 3

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...

Version 4

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.