#include <iostream>
#include <ctime>
#include <time.h>
using namespace std;
int main() {
time_t now = time(0);
struct tm ltm;
localtime_r(&now, <m);
uint8_t bTime[4];
uint8_t year = (ltm.tm_year >= 100) ? (ltm.tm_year - 100) : 0;
uint8_t month = ltm.tm_mon + 1; // 1-12
uint8_t day = ltm.tm_mday; // 1-31
uint32_t packed = 0;
packed |= (year & 0x7F) << 25; // 7 bit
packed |= (month & 0x0F) << 21; // 4 bit
packed |= (day & 0x1F) << 16; // 5 bit
packed |= (ltm.tm_hour & 0x1F) << 11; // 5 bit
packed |= (ltm.tm_min & 0x3F) << 5; // 6 bit
packed |= (ltm.tm_sec & 0x1F); // 5 bit
bTime[0] = (packed >> 24) & 0xFF;
bTime[1] = (packed >> 16) & 0xFF;
bTime[2] = (packed >> 8) & 0xFF;
bTime[3] = packed & 0xFF;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3RpbWU+CiNpbmNsdWRlIDx0aW1lLmg+CgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCgoKCmludCBtYWluKCkgewogICAgCiAgICB0aW1lX3Qgbm93ID0gdGltZSgwKTsKCXN0cnVjdCB0bSBsdG07Cglsb2NhbHRpbWVfcigmbm93LCAmbHRtKTsKCXVpbnQ4X3QgYlRpbWVbNF07Cgl1aW50OF90IHllYXIgPSAobHRtLnRtX3llYXIgPj0gMTAwKSA/IChsdG0udG1feWVhciAtIDEwMCkgOiAwOwoJdWludDhfdCBtb250aCA9IGx0bS50bV9tb24gKyAxOyAvLyAxLTEyCgl1aW50OF90IGRheSA9IGx0bS50bV9tZGF5OyAgICAgLy8gMS0zMQoKCXVpbnQzMl90IHBhY2tlZCA9IDA7CglwYWNrZWQgfD0gKHllYXIgJiAweDdGKSA8PCAyNTsgIC8vIDcgYml0CglwYWNrZWQgfD0gKG1vbnRoICYgMHgwRikgPDwgMjE7IC8vIDQgYml0CglwYWNrZWQgfD0gKGRheSAmIDB4MUYpIDw8IDE2OyAgIC8vIDUgYml0CglwYWNrZWQgfD0gKGx0bS50bV9ob3VyICYgMHgxRikgPDwgMTE7IC8vIDUgYml0CglwYWNrZWQgfD0gKGx0bS50bV9taW4gJiAweDNGKSA8PCA1OyAgIC8vIDYgYml0CglwYWNrZWQgfD0gKGx0bS50bV9zZWMgJiAweDFGKTsgICAgICAgICAvLyA1IGJpdAoKCWJUaW1lWzBdID0gKHBhY2tlZCA+PiAyNCkgJiAweEZGOwoJYlRpbWVbMV0gPSAocGFja2VkID4+IDE2KSAmIDB4RkY7CgliVGltZVsyXSA9IChwYWNrZWQgPj4gOCkgJiAweEZGOwoJYlRpbWVbM10gPSBwYWNrZWQgJiAweEZGOwoJCglyZXR1cm4gMDsKfQ==