#include <iostream>
#include <ctime>
#include <time.h>
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;
std::string HexValue="";
static uint8_t hexValue[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
for(int i=0;i<4;i++)
{
HexValue += hexValue[((bTime[i] >> 4) & 0x0F)];
HexValue += hexValue[(bTime[i] & 0x0F)];
}
std::cout << HexValue;
*/
std::string retValue="";
uint8_t bTime[4];
time_t now = time(0);
tm ltm = *localtime(&now);
ltm.tm_mon++;
ltm.tm_year-=100;
bTime[0] = ((((ltm.tm_min & 0x03) << 6) | (ltm.tm_sec & 0x3F)) & 0xFF);
bTime[1] = ((((ltm.tm_hour & 0x0F) << 4) | ((ltm.tm_min & 0x3F) >> 2)) & 0xFF);
bTime[2] = (((((ltm.tm_mon & 0x0F) << 6) | ((ltm.tm_mday & 0x1F) << 1) | (ltm.tm_hour & 0x1F) >> 4)) & 0xFF);
bTime[3] = ((((ltm.tm_year & 0x3F) << 2) | ((ltm.tm_mon & 0x0F) >> 2)) & 0xFF);
static uint8_t hexValue[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
for(int i=0;i<4;i++)
{
retValue += hexValue[((bTime[i] >> 4) & 0x0F)];
retValue += hexValue[(bTime[i] & 0x0F)];
}
std::cout << retValue;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3RpbWU+CiNpbmNsdWRlIDx0aW1lLmg+CgoKaW50IG1haW4oKQp7Ci8qCXRpbWVfdCBub3cgPSB0aW1lKDApOwoJc3RydWN0IHRtIGx0bTsKCWxvY2FsdGltZV9yKCZub3csICZsdG0pOwoJdWludDhfdCBiVGltZVs0XTsKCXVpbnQ4X3QgeWVhciA9IChsdG0udG1feWVhciA+PSAxMDApID8gKGx0bS50bV95ZWFyIC0gMTAwKSA6IDA7Cgl1aW50OF90IG1vbnRoID0gbHRtLnRtX21vbiArIDE7IC8vIDEtMTIKCXVpbnQ4X3QgZGF5ID0gbHRtLnRtX21kYXk7ICAgICAvLyAxLTMxCgoJdWludDMyX3QgcGFja2VkID0gMDsKCXBhY2tlZCB8PSAoeWVhciAmIDB4N0YpIDw8IDI1OyAgLy8gNyBiaXQKCXBhY2tlZCB8PSAobW9udGggJiAweDBGKSA8PCAyMTsgLy8gNCBiaXQKCXBhY2tlZCB8PSAoZGF5ICYgMHgxRikgPDwgMTY7ICAgLy8gNSBiaXQKCXBhY2tlZCB8PSAobHRtLnRtX2hvdXIgJiAweDFGKSA8PCAxMTsgLy8gNSBiaXQKCXBhY2tlZCB8PSAobHRtLnRtX21pbiAmIDB4M0YpIDw8IDU7ICAgLy8gNiBiaXQKCXBhY2tlZCB8PSAobHRtLnRtX3NlYyAmIDB4MUYpOyAgICAgICAgIC8vIDUgYml0CgoJYlRpbWVbMF0gPSAocGFja2VkID4+IDI0KSAmIDB4RkY7CgliVGltZVsxXSA9IChwYWNrZWQgPj4gMTYpICYgMHhGRjsKCWJUaW1lWzJdID0gKHBhY2tlZCA+PiA4KSAmIDB4RkY7CgliVGltZVszXSA9IHBhY2tlZCAmIDB4RkY7CgkKCXN0ZDo6c3RyaW5nIEhleFZhbHVlPSIiOwoJc3RhdGljIHVpbnQ4X3QgaGV4VmFsdWVbMTZdID0geycwJywnMScsJzInLCczJywnNCcsJzUnLCc2JywnNycsJzgnLCc5JywnQScsJ0InLCdDJywnRCcsJ0UnLCdGJ307CgoJZm9yKGludCBpPTA7aTw0O2krKykKCXsKCQlIZXhWYWx1ZSArPSBoZXhWYWx1ZVsoKGJUaW1lW2ldID4+IDQpICYgMHgwRildOwoJCUhleFZhbHVlICs9IGhleFZhbHVlWyhiVGltZVtpXSAmIDB4MEYpXTsKCX0KCQoJc3RkOjpjb3V0IDw8IEhleFZhbHVlOwoJKi8KCXN0ZDo6c3RyaW5nIHJldFZhbHVlPSIiOwoJdWludDhfdCBiVGltZVs0XTsKCXRpbWVfdCBub3cgPSB0aW1lKDApOwoJdG0gbHRtID0gKmxvY2FsdGltZSgmbm93KTsKCWx0bS50bV9tb24rKzsKCWx0bS50bV95ZWFyLT0xMDA7CgoJYlRpbWVbMF0gPSAoKCgobHRtLnRtX21pbiAmIDB4MDMpIDw8IDYpICB8IChsdG0udG1fc2VjICYgMHgzRikpICYgMHhGRik7CgliVGltZVsxXSA9ICgoKChsdG0udG1faG91ciAmIDB4MEYpIDw8IDQpIHwgKChsdG0udG1fbWluICYgMHgzRikgPj4gMikpICYgMHhGRik7CgliVGltZVsyXSA9ICgoKCgobHRtLnRtX21vbiAmIDB4MEYpIDw8IDYpIHwgKChsdG0udG1fbWRheSAmIDB4MUYpIDw8IDEpIHwgKGx0bS50bV9ob3VyICYgMHgxRikgPj4gNCkpICYgMHhGRik7CgliVGltZVszXSA9ICgoKChsdG0udG1feWVhciAmIDB4M0YpIDw8IDIpIHwgKChsdG0udG1fbW9uICYgMHgwRikgPj4gMikpICYgMHhGRik7CgoJCglzdGF0aWMgdWludDhfdCBoZXhWYWx1ZVsxNl0gPSB7JzAnLCcxJywnMicsJzMnLCc0JywnNScsJzYnLCc3JywnOCcsJzknLCdBJywnQicsJ0MnLCdEJywnRScsJ0YnfTsKCglmb3IoaW50IGk9MDtpPDQ7aSsrKQoJewoJCXJldFZhbHVlICs9IGhleFZhbHVlWygoYlRpbWVbaV0gPj4gNCkgJiAweDBGKV07CgkJcmV0VmFsdWUgKz0gaGV4VmFsdWVbKGJUaW1lW2ldICYgMHgwRildOwoJfQoJc3RkOjpjb3V0IDw8IHJldFZhbHVlOwoJcmV0dXJuIDA7Cn0K