溫馨提示×

如何使用timeval進行時間的加減運算

c++
小樊
100
2024-08-11 10:29:36
欄目: 編程語言

在C語言中,可以使用timeval結(jié)構(gòu)體來表示時間,并通過調(diào)用timeval結(jié)構(gòu)體的相關(guān)函數(shù)來進行時間的加減運算。以下是一個示例代碼,演示如何使用timeval結(jié)構(gòu)體進行時間的加減運算:

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

int main() {
    struct timeval currentTime, newTime, result;

    // 獲取當前時間
    gettimeofday(&currentTime, NULL);

    // 設(shè)置要加減的時間間隔
    int secondsToAdd = 10;
    int secondsToSubtract = 5;

    // 加法運算
    result.tv_sec = currentTime.tv_sec + secondsToAdd;
    result.tv_usec = currentTime.tv_usec;
    timeradd(&currentTime, &result, &newTime);
    printf("Add %d seconds: %ld seconds %ld microseconds\n", secondsToAdd, newTime.tv_sec, newTime.tv_usec);

    // 減法運算
    result.tv_sec = currentTime.tv_sec - secondsToSubtract;
    result.tv_usec = currentTime.tv_usec;
    timersub(&currentTime, &result, &newTime);
    printf("Subtract %d seconds: %ld seconds %ld microseconds\n", secondsToSubtract, newTime.tv_sec, newTime.tv_usec);

    return 0;
}

在上面的示例代碼中,我們首先獲取當前時間,然后設(shè)置要加減的時間間隔,通過調(diào)用timeradd和timersub函數(shù)進行時間的加減運算,最后輸出結(jié)果。請注意,timeval結(jié)構(gòu)體中的tv_sec字段表示秒數(shù),tv_usec字段表示微秒數(shù)。

0