difftime, _difftime32, _difftime64
Recherche la différence entre deux heures.
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
Se terminant temps.timer0
Temps de départ.
Valeur de retour
difftime retourne le temps écoulé en secondes, d' timer0 à timer1.La valeur retournée est un nombre à virgule flottante en double précision.La valeur de retour peut être 0, indiquant une erreur.
Notes
La fonction d' difftime calcule la différence entre les deux valeurs d'heure fournies timer0 et timer1.
La valeur d'heure fournie doit pouvoir être contenue dans la marge des time_t.time_t est une valeur 64 bits.Ainsi, la fin de la plage a été étendue comprises entre 3h14 : Le 7 janvier 19, 2038 et 23h59 : 59, le 31 décembre, 3000.La chaîne inférieure d' time_t est encore de minuit, le 1er janvier 1970.
difftime est une fonction inline qui évalue ou à _difftime32 ou selon que _USE_32BIT_TIME_T d' _difftime64 est défini._difftime32 et _difftime64 peuvent être utilisés directement pour forcer l'utilisation d'une taille particulière du type de temps.
Ces fonctions valident leurs paramètres.Si des paramètres est zéro ou négatif, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres.Si est autorisé à l'exécution de se poursuivre, ces fonctions retournent 0 et errno défini à EINVAL.
Configuration requise
Routine |
En-tête requis |
---|---|
difftime |
<time.h> |
_difftime32 |
<time.h> |
_difftime64 |
<time.h> |
Pour des informations de compatibilité supplémentaires, 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 );
}