🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #308977

Re: Milisekundy i mikrosekundy do logu

#308977
From: bartekltg
Date: Mon, 16 Jan 2017 18:26
50 lines
2558 bytes
On 16.01.2017 18:52, Borneq wrote:
> W dniu 16.01.2017 o 15:06, bartekltg pisze:
>> Nie zerknąłeś nawet do tego kodu, porawda;> Inaczej zauwałzyłbytś, że
>> nanosekundy wypluwa, bo tak kazałem ;p
>
> Moja propozycja:
> #include <vector>
> #include <iostream>
> #include <chrono>
>
> using namespace std;
>
> void printf_chrono(ostream &fp,
> std::chrono::time_point<std::chrono::system_clock> p)
> {
>     int64_t usAfterEpoch =
> std::chrono::duration_cast<std::chrono::microseconds>(p.time_since_epoch()).count();
>
>     time_t p_time = std::chrono::system_clock::to_time_t(p);
>     struct tm* now = localtime(&p_time);
>     fp << now->tm_year + 1900 << "-" << now->tm_mon + 1 << "-" <<
> now->tm_mday << " "
>         << now->tm_hour << ":" << now->tm_min << ":" << now->tm_sec;
>     int64_t usAfterSecond = usAfterEpoch % (1000 * 1000);
>     char usBuf[10];
>     sprintf(usBuf, ".%06d", usAfterSecond);
>     cout << usBuf << endl;
> }
>
> int main(int argc, char *argv[])
> {
>     std::chrono::time_point<std::chrono::system_clock> p;
>     for (int i = 0; i < 20; i++)
>     {
>         _sleep(101);
>         p = std::chrono::system_clock::now();
>         printf_chrono(cout, p);
>     }
> }


IMHO ładniej by było użyć:
http://en.cppreference.com/w/cpp/chrono/time_point/time_point_cast

Rzutujesz na sekundy, potem odejmujesz pełnosekundowy
punkt czasu od rzeczywistego. Nie ma wtedy zabawy w ręczne
dzielenia etc. Ale to raczej estetyka niż poprawność:)

pzdr
bartekltg
Technical Details
Message-ID: <o5j39e$jem$1@node1.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <o5dm4s$tln$1@node2.news.atman.pl> <o5ig5l$v5b$1@node1.news.atman.pl> <o5ih83$igi$1@node2.news.atman.pl> <o5ik1g$3ee$1@node1.news.atman.pl> <o5j193$2qb$1@node2.news.atman.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: bartekltg <bartekltg@gmail.com>
Newsgroups: pl.comp.lang.c
Subject: Re: Milisekundy i mikrosekundy do logu
Date: Mon, 16 Jan 2017 19:26:53 +0100
Organization: ATMAN - ATM S.A.
Lines: 53
Message-ID: <o5j39e$jem$1@node1.news.atman.pl>
References: <o5dm4s$tln$1@node2.news.atman.pl> <o5ig5l$v5b$1@node1.news.atman.pl> <o5ih83$igi$1@node2.news.atman.pl> <o5ik1g$3ee$1@node1.news.atman.pl> <o5j193$2qb$1@node2.news.atman.pl>
NNTP-Posting-Host: 89-70-119-159.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: node1.news.atman.pl 1484591214 19926 89.70.119.159 (16 Jan 2017 18:26:54 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Mon, 16 Jan 2017 18:26:54 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1
In-Reply-To: <o5j193$2qb$1@node2.news.atman.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit