Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Menemukan perbedaan antara dua kali.
Sintaks
double difftime( time_t timeEnd, time_t timeStart ); // See note in remarks section about linkage
double _difftime32( __time32_t timeEnd, __time32_t timeStart );
double _difftime64( __time64_t timeEnd, __time64_t timeStart );
Parameter
timeEnd
Waktu berakhir.
timeStart
Waktu mulai.
Nilai hasil
difftime mengembalikan waktu yang berlalu dalam detik, dari timeStart ke timeEnd. Nilai yang dikembalikan adalah angka floating-point presisi ganda. Nilai yang dikembalikan mungkin 0, menunjukkan kesalahan.
Keterangan
Fungsi ini difftime menghitung perbedaan antara dua nilai timeStart waktu yang disediakan dan timeEnd.
Nilai waktu yang disediakan harus sesuai dalam rentang time_t.
time_t adalah nilai 64-bit. Dengan demikian, akhir rentang diperpanjang dari 23:59:59 18 Januari 2038, UTC menjadi 23:59:59, 31 Desember 3000. Kisaran time_t bawah masih tengah malam, 1 Januari 1970.
difftime adalah fungsi sebaris yang mengevaluasi ke salah satu _difftime32 atau _difftime64 tergantung pada apakah _USE_32BIT_TIME_T ditentukan. _difftime32 dan _difftime64 dapat digunakan langsung untuk memaksa penggunaan ukuran tertentu dari jenis waktu.
Fungsi-fungsi ini memvalidasi parameternya. Jika salah satu parameter adalah nol atau negatif, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, fungsi-fungsi ini mengembalikan 0 dan diatur errno ke EINVAL.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Nota
Jika Anda menggunakan Windows SDK versi 10.0.26100.6901 dan Visual Studio 2026 atau yang lebih baru bersama-sama, difftime tidak lagi static inline (tautan internal). Sebaliknya, itu inline (tautan eksternal).
Untuk kembali ke perilaku sebelumnya, #define _STATIC_INLINE_UCRT_FUNCTIONS=1 sebelum menyertakan header CRT apa pun. Secara default, _STATIC_INLINE_UCRT_FUNCTIONS diatur ke 0.
Perubahan ini meningkatkan kesesuaian UCRT dengan standar C++ dan meningkatkan kompatibilitas dengan modul C++.
Persyaratan
| Rutin | Header yang diperlukan |
|---|---|
difftime |
<time.h> |
_difftime32 |
<time.h> |
_difftime64 |
<time.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// 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 );
}
Using random floating point numbers 1.04749e+038 2.01482e+038 1.72737e+038
Multiplying 2 floating point numbers 100 million times...
Program takes 3 seconds.
Lihat juga
Dukungan matematika dan titik mengambang
Manajemen waktu
time, , _time32_time64