Получить количество дней с начала эпохи в C ++ (кросс-платформенный)

Как я могу получить количество дней, начиная с эпохи в C ++, я знаю, что я должен использовать mktime функция, но я не могу понять, как это реализовать

Спасибо!

2

Решение

Изменение примера кода из cplusplus.com:

#include <stdio.h>
#include <time.h>

int main ()
{
time_t seconds;

seconds = time (NULL);
int daysSinceEpoch = seconds/(60*60*24);
printf ("%ld days since January 1, 1970", daysSinceEpoch);

return 0;
}
3

Другие решения

Начните с получения текущего времени, с time(NULL), Передайте это значение gmtime, который дает вам обратно tm*, Прочитайте документацию для tm,

1

С датами нелегко работать правильно. Стандартная библиотека в ее нынешнем виде не дает возможности сделать это правильно. Вы должны использовать правильную библиотеку дат, такую ​​как boost :: date или Говард Хиннант <date>.

С библиотекой Хиннанта код может выглядеть примерно так:

date epoch = year(1970)/jan/day(1); // Assuming you're referring to the traditional Unix epoch (some systems such as Cocoa on OS X use the first day of the millenium, Jan 1, 2001 as their epoch)
days d = date::today() - epoch;
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector