difftime, _difftime32, _difftime64

Sucht den Unterschied zwischen zwei Mal.

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
    Beendet die Uhrzeit.

  • timer0
    Anfangszeit.

Rückgabewert

difftime gibt die verstrichene Zeit in Sekunden, die von timer0 zu timer1zurück.Der zurückgegebene Wert ist eine Gleitkommazahl mit doppelter Genauigkeit.Der Rückgabewert ist 0 und gibt einen Fehler an.

Hinweise

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

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

difftime ist eine Inlinefunktion, der entweder auf _difftime32 oder _difftime64 ergibt je nachdem, ob _USE_32BIT_TIME_T definiert ist._difftime32 und _difftime64 können direkt verwendet werden, um die Verwendung einer bestimmten Größe des Typs Zeit zu erzwingen.

Diese Funktionen überprüfen deren Parameter.Wenn der Parameter Null oder negativ ist, wird der Ereignishandler aufgerufen, z. B. ungültige Parameter in Parametervalidierungbeschrieben.Wenn die Ausführung ermöglicht wird, um fortzufahren, geben diese Funktionen festlegen und 0 errno zu EINVALzurück.

Anforderungen

Routine

Erforderlicher Header

difftime

<time.h>

_difftime32

<time.h>

_difftime64

<time.h>

Um Kompatibilität zusätzlichen Informationen 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::Subtrahieren von

Siehe auch

Referenz

Gleitkommaunterstützung

Zeit-Verwaltung

Zeit, _time32, _time64