Partager via


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 );
}
  

Équivalent .NET Framework

System::DateTime::Subtract

Voir aussi

Référence

Prise en charge de la virgule flottante

Gestion du temps

time, _time32, _time64