Namespaces
Variants

difftime

From cppreference.net
ヘッダーで定義 <time.h>
double difftime ( time_t time_end, time_t time_beg ) ;

二つのカレンダー時間の差を time_t オブジェクトとして計算します( time_end - time_beg )。単位は秒です。 time_end time_beg より前の時間点を指す場合、結果は負の値になります。

目次

パラメータ

time_beg, time_end - 比較対象の時間

戻り値

2つの時刻間の秒数の差。

注記

POSIXシステムでは、 time_t は秒単位で計測され、 difftime は算術減算と等価ですが、CおよびC++では time_t に小数単位が許可されています。

以下のプログラムは、月の開始時点から経過した秒数を計算します。

#include <stdio.h>
#include <time.h>
int main(void)
{
    time_t now = time(0);
    struct tm beg = *localtime(&now);
    // set beg to the beginning of the month
    beg.tm_hour = 0,
    beg.tm_min = 0,
    beg.tm_sec = 0,
    beg.tm_mday = 1;
    double seconds = difftime(now, mktime(&beg));
    printf("%.f seconds have passed since the beginning of the month.\n", seconds);
    return 0;
}

出力:

1937968 seconds have passed since the beginning of the month.

参考文献

  • C17規格 (ISO/IEC 9899:2018):
  • 7.27.2.2 difftime関数 (p: 285)
  • C11規格 (ISO/IEC 9899:2011):
  • 7.27.2.2 difftime関数 (p: 390)
  • C99規格 (ISO/IEC 9899:1999):
  • 7.23.2.2 difftime関数 (p: 338)
  • C89/C90標準 (ISO/IEC 9899:1990):
  • 7.12.2.2 difftime関数 (p: 171)

関連項目