Получить начало дневной метки времени c ++ - PullRequest
0 голосов
/ 23 ноября 2018

Мне нужно получить метку времени в c ++.Я нашел некоторые функции в chrono, например:

 std::chrono::system_clock::now()

Но он возвращает текущее время.Как получить метку времени на день?Я имею в виду время, которое представляет 00:00:00 сегодня и то же самое вчера?Я очень новичок в C ++ ..

1 Ответ

0 голосов
/ 23 ноября 2018

Я думаю, вам просто нужно свидание, без времени.Таким образом, вы можете получить это так:

#include <chrono>
#include <ctime> 
#include <iomanip>
#include <iostream>

using namespace std;

int main()
{
    auto curr = std::chrono::system_clock::now();
    auto tm = std::chrono::system_clock::to_time_t(curr);
    cout << std::put_time(std::localtime(&tm), "%d.%m.%Y");
}

и, конечно, вы можете принудительно сбросить поля времени, если вам нужно:

    auto curr = std::chrono::system_clock::now();
    time_t tm = std::chrono::system_clock::to_time_t(curr);
    auto lt = std::localtime(&tm);
    lt->tm_hour = 0;
    lt->tm_min = 0;
    lt->tm_sec = 0;   
    cout << lt->tm_mday << "." << lt->tm_mon + 1 << "." << lt->tm_year + 1900 << endl;
...