Article View: pl.comp.lang.c
Article #308977Re: Milisekundy i mikrosekundy do logu
From: bartekltg
Date: Mon, 16 Jan 2017 18:26
Date: Mon, 16 Jan 2017 18:26
50 lines
2558 bytes
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-mailReferences:
<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