รับช่วงเวลา 2 ช่วง (ชั่วโมง นาที วินาที) คำนวณหาความต่าง
ตัวอย่าง: 8:06:02 และ 3:09:03 → Diff = 4:56:59
โค้ดโปรแกรม
#include <iostream>
using namespace std;
int main() {
int h1, m1, s1, h2, m2, s2;
int diff_h, diff_m, diff_s;
cout << "Enter time period 1 (h m s): ";
cin >> h1 >> m1 >> s1;
cout << "Enter time period 2 (h m s): ";
cin >> h2 >> m2 >> s2;
// Handle seconds borrow
if (s2 > s1) {
m1--;
s1 += 60;
}
diff_s = s1 - s2;
// Handle minutes borrow
if (m2 > m1) {
h1--;
m1 += 60;
}
diff_m = m1 - m2;
diff_h = h1 - h2;
cout << "Time Difference is " << diff_h << ":" << diff_m << ":" << diff_s;
return 0;
}
ผลลัพธ์ตัวอย่าง
Enter time period 1 (h m s): 7 6 2
Enter time period 2 (h m s): 5 4 3
Time Difference is 2:1:59
อัลกอริธึม
- อ่านเวลา 2 ช่วง
- ถ้าวินาทีช่วง 2 > ช่วง 1: ยืมนาที 1 (m1--, s1+=60)
- คำนวณ diff_s = s1 - s2
- ถ้านาทีช่วง 2 > ช่วง 1: ยืมชั่วโมง 1 (h1--, m1+=60)
- คำนวณ diff_m = m1 - m2, diff_h = h1 - h2
C++ Modern (Chrono)
#include <chrono>
#include <iostream>
using namespace std::chrono;
int main() {
auto t1 = hours(7) + minutes(6) + seconds(2);
auto t2 = hours(5) + minutes(4) + seconds(3);
auto diff = t1 - t2;
cout << duration_cast<hours>(diff).count() << ":"
<< duration_cast<minutes>(diff % hours(1)).count() << ":"
<< duration_cast<seconds>(diff % minutes(1)).count();
return 0;
}