Spec-Zone.ru › C

difftime

Определено в заголовке <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 - времена для сравнения

Возвращаемое значение

Разница между двумя временами в секундах.

Примечания

В системах 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 (с. 285)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.27.2.2 Функция difftime (с. 390)
  • Стандарт C99 (ISO/IEC 9899:1999):
    • 7.23.2.2 Функция difftime (с. 338)
  • Стандарт C89/C90 (ISO/IEC 9899:1990):
    • 7.12.2.2 Функция difftime (с. 171)

См. также

Документация C++ для difftime

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/chrono/difftime

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API