0

以下のコードを使用すると、現在の時刻をミリ秒単位で取得できます。ここで、システム時間にミリ秒を追加したいと思います。ヒントはありますか?

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

int main (int argc, char** argv) {
    struct timeval time;
    gettimeofday (&time, NULL);

    long systemtime = time.tv_sec*1000L + time.tv_usec/1000L;

     printf("Time in milliseconds: %ld milliseconds\n", systemtime);
     //sample output: 1492592522106

     return 0;
}

編集:解決済み

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

int main (int argc, char** argv) {
    struct timeval time;
    gettimeofday (&time, NULL);

    printf("Time in milliseconds: %ld milliseconds\n", time.tv_sec*1000L + 
    (time.tv_usec/1000L));
    printf("Time in milliseconds+300: %ld milliseconds\n", time.tv_sec*1000L 
    + (time.tv_usec/1000L+300));
    printf("usec: %ld", time.tv_usec/1000L);

    return 0;
}

出力:

Time in milliseconds: 1492595580965 milliseconds (Wed, 19 Apr 2017 09:53:00.965 GMT)
Time in milliseconds+300: 1492595581265 milliseconds (Wed, 19 Apr 2017 09:53:01.265 GMT)
usec: 965
4

2 に答える 2

4

std::chronoライブラリを使用してこのタスクを実行できます。次のコード スニペットはこれに役立ちます。

auto now = std::chrono::system_clock::now().time_since_epoch();
auto t100ms = std::chrono::milliseconds(100);
auto time = now + t100ms;
std::cout << std::chrono::duration_cast<std::chrono::milliseconds>(time).count();
于 2017-04-19T09:39:08.740 に答える