#include <iostream>
#include <cstring>
#include <ctime>
#include <iomanip> // for std::put_time
using namespace std;
time_t test (unsigned int date, unsigned int hhmmss)
{
int yyyy = (int) date / 10000;
int mn = (int) date / 100 - (yyyy * 100);
int dd = (int) date - (yyyy * 10000) - (mn * 100);
struct tm t;
memset(&t, 0, sizeof(t));
t.tm_year = yyyy - 1900;
t.tm_mon = mn - 1;
t.tm_mday = dd;
t.tm_hour = hhmmss / 10000;
t.tm_min = hhmmss / 100 - (t.tm_hour * 100);
t.tm_sec = hhmmss - (t.tm_hour * 10000) - (t.tm_min * 100);
t.tm_isdst = -1;
return mktime(&t);
}
int main() {
time_t ttt = test(20250528, 112299);
std::tm* local_tm = std::localtime(&ttt); // convert to local time structure
std::cout << "Current time: "
<< std::put_time(local_tm, "%Y-%m-%d %H:%M:%S") << std::endl;
cout << "ok." << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KI2luY2x1ZGUgPGN0aW1lPgojaW5jbHVkZSA8aW9tYW5pcD4gIC8vIGZvciBzdGQ6OnB1dF90aW1lCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp0aW1lX3QgdGVzdCAodW5zaWduZWQgaW50IGRhdGUsIHVuc2lnbmVkIGludCBoaG1tc3MpCnsKCWludCB5eXl5ID0gKGludCkgZGF0ZSAvIDEwMDAwOwogICAgaW50IG1uICAgPSAoaW50KSBkYXRlIC8gMTAwIC0gKHl5eXkgKiAxMDApOwogICAgaW50IGRkICAgPSAoaW50KSBkYXRlIC0gKHl5eXkgKiAxMDAwMCkgLSAobW4gKiAxMDApOwoKICAgIHN0cnVjdCB0bSB0OwogICAgbWVtc2V0KCZ0LCAwLCBzaXplb2YodCkpOwoKICAgIHQudG1feWVhciA9IHl5eXkgLSAxOTAwOwogICAgdC50bV9tb24gID0gbW4gLSAxOwogICAgdC50bV9tZGF5ID0gZGQ7CiAgICB0LnRtX2hvdXIgPSBoaG1tc3MgLyAxMDAwMDsKICAgIHQudG1fbWluICA9IGhobW1zcyAvIDEwMCAtICh0LnRtX2hvdXIgKiAxMDApOwogICAgdC50bV9zZWMgID0gaGhtbXNzIC0gKHQudG1faG91ciAqIDEwMDAwKSAtICh0LnRtX21pbiAqIDEwMCk7CiAgICB0LnRtX2lzZHN0ID0gLTE7CiAgICByZXR1cm4gbWt0aW1lKCZ0KTsKfQoKaW50IG1haW4oKSB7Cgl0aW1lX3QgdHR0ID0gdGVzdCgyMDI1MDUyOCwgMTEyMjk5KTsKCXN0ZDo6dG0qIGxvY2FsX3RtID0gc3RkOjpsb2NhbHRpbWUoJnR0dCk7ICAvLyBjb252ZXJ0IHRvIGxvY2FsIHRpbWUgc3RydWN0dXJlCgogICAgc3RkOjpjb3V0IDw8ICJDdXJyZW50IHRpbWU6ICIKICAgICAgICAgICAgICA8PCBzdGQ6OnB1dF90aW1lKGxvY2FsX3RtLCAiJVktJW0tJWQgJUg6JU06JVMiKSA8PCBzdGQ6OmVuZGw7Cgljb3V0IDw8ICJvay4iIDw8IGVuZGw7CglyZXR1cm4gMDsKfQ==