Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ฟังก์ชัน difftime() ใน C++

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 ไม่ได้ใช้งาน) ได้ลบออกแล้วในตัวอย่างนี้