void getDate(long long time)
{
int seconds = time / 1000000000 + 8 * 3600;// time zone +8
int days = seconds / 86400;
int year = 1970 + (int) (days / 1461) * 4; // recycled in 4 years = 1461 days
int month = 0;
int day = days % 1461;
day = day > 730 ? day - 1 : day;
year += (int) (day / 365);
day = day % 365;
int monthday[]{0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365};
for (int i = 0; i < 13; i++) {
if (day < monthday[i + 1]) {
month = i + 1;
day = day - monthday[i] + 1;
break;
}
}
int sec = seconds % 86400;
int hour = (int) (sec / 3600);
int minute = (int) (sec % 3600 / 60);
int second = sec % 60;
int nanoseconds = time % 1000000000;
int millisecond = nanoseconds / 1000;
std::cout << year << "/" << month << "/" << day << " " << hour << ":"
<< minute << ":" << second << "." << millisecond << std::endl;
}
10-10
893
01-15
2198
06-23
1515
06-15
4325
03-30
02-22
7194