difftime, _difftime32, _difftime64
Trouve la différence entre deux horaires.
double difftime(
time_t timer1,
time_t timer0
);
double _difftime32(
__time32_t timer1,
__time32_t timer0
);
double _difftime64(
__time64_t timer1,
__time64_t timer0
);
Paramètres
timer1
Heure de fin.timer0
Heure de début.
Valeur de retour
difftime retourne la durée en secondes, entretimer0 et timer1. La valeur retournée est un nombre à virgule flottante double précision. La valeur de retour peut être 0, ce qui indique une erreur.
Notes
La fonction difftime calcule la différence entre les deux valeurs d'heure fournies timer0 et timer1.
La valeur d'heure indiquée doit entrer dans la plage time_t. time_tValeur décimale (64 bits). Par conséquent, la fin de la plage a été étendue à partir de 3h14 7s le 19 janvier 2038 à 23h59 59s, le 31 décembre, 3000. La chaîne inférieure time_t est encore de minuit, le 1er janvier 1970.
difftime est une fonction inline qui prend la valeur _difftime32 ou _difftime64 selon la façon dont _USE_32BIT_TIME_T est définie. _difftime32 et _difftime64 peuvent être utilisés directement pour forcer l'utilisation d'une taille particulière du type time.
Ces fonctions valident leurs paramètres. Si un des paramètres est zéro ou est négatif, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, ces fonctions retournent 0 et définissent errno à la valeur EINVAL.
Configuration requise
Routine |
En-tête requis |
---|---|
difftime |
<time.h> |
_difftime32 |
<time.h> |
_difftime64 |
<time.h> |
Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.
Exemple
// crt_difftime.c
// This program calculates the amount of time
// needed to do a floating-point multiply 100 million times.
//
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <float.h>
double RangedRand( float range_min, float range_max)
{
// Generate random numbers in the half-closed interval
// [range_min, range_max). In other words,
// range_min <= random number < range_max
return ((double)rand() / (RAND_MAX + 1) * (range_max - range_min)
+ range_min);
}
int main( void )
{
time_t start, finish;
long loop;
double result, elapsed_time;
double arNums[3];
// Seed the random-number generator with the current time so that
// the numbers will be different every time we run.
srand( (unsigned)time( NULL ) );
arNums[0] = RangedRand(1, FLT_MAX);
arNums[1] = RangedRand(1, FLT_MAX);
arNums[2] = RangedRand(1, FLT_MAX);
printf( "Using floating point numbers %.5e %.5e %.5e\n", arNums[0], arNums[1], arNums[2] );
printf( "Multiplying 2 numbers 100 million times...\n" );
time( &start );
for( loop = 0; loop < 100000000; loop++ )
result = arNums[loop%3] * arNums[(loop+1)%3];
time( &finish );
elapsed_time = difftime( finish, start );
printf( "\nProgram takes %6.0f seconds.\n", elapsed_time );
}