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