difftime() คืออะไร?
difftime() เป็นฟังก์ชันในตัวใน C++ ซึ่งนิยามในไฟล์หัวข้อ <ctime> ฟังก์ชันนี้รับพารามิเตอร์สองตัวแบบ time_t และคำนวณ ความแตกต่างของเวลา (เวลาสิ้นสุด - เวลาเริ่มต้น) ในหน่วยวินาที
ไวยากรณ์ (Syntax)
double difftime(time_t end, time_t beginning);
ค่าที่ส่งคืน (Return Value)
ส่งคืนความแตกต่างของเวลาในหน่วยวินาที จัดเก็บในชนิดข้อมูล double
ตัวอย่างที่ 1: คำนวณวินาทีนับตั้งต้นปี
#include <ctime>
#include <cstdio>
int main() {
time_t now;
struct tm newyear;
double seconds;
time(&now); // รับเวลาปัจจุบัน
newyear = *localtime(&now);
newyear.tm_hour = 0;
newyear.tm_min = 0;
newyear.tm_sec = 0;
newyear.tm_mon = 0; // มกราคม = 0
newyear.tm_mday = 1; // วันที่ 1
seconds = difftime(now, mktime(&newyear));
printf("%.0f วินาทีนับตั้งแต่ต้นปีในเขตเวลาปัจจุบัน\n", seconds);
return 0;
}
ผลลัพธ์ (Output) - ตัวอย่าง
3351041 วินาทีนับตั้งแต่ต้นปีในเขตเวลาปัจจุบัน
ตัวอย่างที่ 2: วัดเวลาการทำงานของโปรแกรม
#include <ctime>
#include <iostream>
using namespace std;
int main() {
time_t start, ending;
time(&start);
// จำลองงานหนัก
for (int i = 0; i < 50000; i++) {
for (int j = 0; j < 50000; j++);
}
for (int i = 0; i < 50000; i++) {
for (int j = 0; j < 50000; j++);
}
for (int i = 0; i < 50000; i++) {
for (int j = 0; j < 50000; j++);
}
time(&ending);
cout << "เวลาที่ใช้ทั้งหมด = " << difftime(ending, start) << " วินาที" << endl;
return 0;
}
ผลลัพธ์ (Output) - ตัวอย่าง
เวลาที่ใช้ทั้งหมด = 37 วินาที
หมายเหตุ: ผลลัพธ์เวลาจะแตกต่างกันไปตามความเร็ว CPU ของเครื่องที่รัน โค้ดต้นฉบับมีบั๊กเล็กน้อย (ตัวแปร addition ไม่ได้ใช้งาน) ได้ลบออกแล้วในตัวอย่างนี้