Freigeben über


difftime, _difftime32, _difftime64

Sucht den Unterschied zwischen zweimal.

double difftime( 
   time_t timer1,
   time_t timer0 
);
double _difftime32( 
   __time32_t timer1,
   __time32_t timer0 
);
double _difftime64( 
   __time64_t timer1,
   __time64_t timer0 
);

Parameter

  • timer1
    Beenden Zeit.

  • timer0
    Anfangszeit.

Rückgabewert

difftime gibt die verstrichene Zeit in Sekunden, von timer0 in timer1 zurück. Der zurückgegebene Wert ist eine doppelt genaue Gleitkommazahl. Der Rückgabewert kann 0 und gibt einen Fehler an.

Hinweise

Die difftime-Funktion berechnet den Unterschied zwischen den zwei angegebenen Zeitwerten timer0 und timer1.

Der angegebene Zeitwert muss innerhalb des Bereichs von time_t anpassen. time_t ist ein 64-Bit-Wert. Daher wurde das Ende des Bereichs von 03:14 erweitert: Am 7. Januar 19 2038 bis 23:59: 59 3000 am 31. Dezember. Der untere Bereich von time_t ist, am 1. Januar 1970 noch Mitternacht.

difftime ist eine Inlinefunktion, der entweder auf _difftime32 oder _difftime64 ausgewertet wird abhängig davon, ob _USE_32BIT_TIME_T definiert wird. _difftime32 und _difftime64 können direkt verwendet werden, um die Verwendung einer bestimmten Größe des Zeittyps zu erzwingen.

Diese Funktionen überprüfen ihre Parameter. Wenn entweder von Parametern null oder negativ ist, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben. Wenn die Ausführung zulässig ist, um fortzufahren, geben diese Funktionen festgelegtem 0 und errno auf EINVAL ergibt.

Anforderungen

Routine

Erforderlicher Header

difftime

<time.h>

_difftime32

<time.h>

_difftime64

<time.h>

Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

Beispiel

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

.NET Framework-Entsprechung

System::DateTime::Subtract

Siehe auch

Referenz

Gleitkommaunterstützung

Uhrzeitverwaltung

time, _time32, _time64