#include <stdio.h>
#include <time.h>
char *c89_asctime(const struct tm *timeptr)
{
static const char wday_name[7][3] = {
"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
};
static const char mon_name[12][3] = {
"Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
};
static char result[26];
sprintf(result
, "%.3s %.3s%3d %.2d:%.2d:%.2d %d\n", wday_name[timeptr->tm_wday],
mon_name[timeptr->tm_mon],
timeptr->tm_mday, timeptr->tm_hour,
timeptr->tm_min, timeptr->tm_sec,
1900 + timeptr->tm_year);
return result;
}
int main(void) {
struct tm broken_down;
broken_down.tm_year = 2000 - 1900;
broken_down.tm_mon = 0;
broken_down.tm_mday = 1;
broken_down.tm_hour = broken_down.tm_min = broken_down.tm_sec = 0;
printf("C89 asctime result is: %s", c89_asctime
(&broken_down
)); }
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDx0aW1lLmg+CgpjaGFyICpjODlfYXNjdGltZShjb25zdCBzdHJ1Y3QgdG0gKnRpbWVwdHIpCnsKICAgIHN0YXRpYyBjb25zdCBjaGFyIHdkYXlfbmFtZVs3XVszXSA9IHsKICAgICAgICAgICAgICJTdW4iLCAiTW9uIiwgIlR1ZSIsICJXZWQiLCAiVGh1IiwgIkZyaSIsICJTYXQiCiAgICB9OwogICAgc3RhdGljIGNvbnN0IGNoYXIgbW9uX25hbWVbMTJdWzNdID0gewogICAgICAgICAgICAgIkphbiIsICJGZWIiLCAiTWFyIiwgIkFwciIsICJNYXkiLCAiSnVuIiwKICAgICAgICAgICAgICJKdWwiLCAiQXVnIiwgIlNlcCIsICJPY3QiLCAiTm92IiwgIkRlYyIKICAgIH07CiAgICBzdGF0aWMgY2hhciByZXN1bHRbMjZdOwoKICAgIHNwcmludGYocmVzdWx0LCAiJS4zcyAlLjNzJTNkICUuMmQ6JS4yZDolLjJkICVkXG4iLAogICAgICAgICAgICAgd2RheV9uYW1lW3RpbWVwdHItPnRtX3dkYXldLAogICAgICAgICAgICAgbW9uX25hbWVbdGltZXB0ci0+dG1fbW9uXSwKICAgICAgICAgICAgIHRpbWVwdHItPnRtX21kYXksIHRpbWVwdHItPnRtX2hvdXIsCiAgICAgICAgICAgICB0aW1lcHRyLT50bV9taW4sIHRpbWVwdHItPnRtX3NlYywKICAgICAgICAgICAgIDE5MDAgKyB0aW1lcHRyLT50bV95ZWFyKTsKICAgIHJldHVybiByZXN1bHQ7Cn0KCgppbnQgbWFpbih2b2lkKSB7CiAgICBzdHJ1Y3QgdG0gICBicm9rZW5fZG93bjsKICAgIGJyb2tlbl9kb3duLnRtX3llYXIgPSAyMDAwIC0gMTkwMDsKICAgIGJyb2tlbl9kb3duLnRtX21vbiA9IDA7CiAgICBicm9rZW5fZG93bi50bV9tZGF5ID0gMTsKICAgIGJyb2tlbl9kb3duLnRtX2hvdXIgPSBicm9rZW5fZG93bi50bV9taW4gPSBicm9rZW5fZG93bi50bV9zZWMgPSAwOwoKICAgIHByaW50ZigiQ3VycmVudCBkYXRlIGFuZCB0aW1lOiAlcyIsIGFzY3RpbWUoJmJyb2tlbl9kb3duKSk7CiAgICBwcmludGYoIkM4OSBhc2N0aW1lIHJlc3VsdCBpczogJXMiLCBjODlfYXNjdGltZSgmYnJva2VuX2Rvd24pKTsKfQ==