Chương trình C++ này thực hiện chuyển đổi thời gian từ định dạng 12 giờ (có AM/PM) sang định dạng 24 giờ.
Thuật toán
Bắt đầu
Trong hàm main():
Nếu meridian = "pm"
Kiểm tra nếu giờ nhập vào < 12
Thì cộng 12 vào giờ và in ra định dạng 24h.
Kiểm tra nếu giờ nhập vào = 12
Thì in "00" làm giờ và in ra định dạng 24h.
Ngược lại nếu meridian = "am"
Kiểm tra nếu giờ nhập vào < 12
Thì in trực tiếp định dạng 24h.
Kiểm tra nếu giờ nhập vào = 12
Thì in "12" làm giờ và in ra định dạng 24h.
Ngược lại in "Lựa chọn sai".
Kết thúc
Ví dụ mã nguồn
#include <iostream>
#include <cstring>
#include <iomanip>
using namespace std;
int main() {
int hours, minutes, seconds;
char median[10];
cout << "Nhap gio, phut, giay: ";
cin >> hours >> minutes >> seconds;
cout << "Nhap meridian (am/pm): ";
cin >> median;
cout << "Thoi gian 12h: "
<< setfill('0') << setw(2) << hours << ":"
<< setfill('0') << setw(2) << minutes << ":"
<< setfill('0') << setw(2) << seconds << median << endl;
if (strcmp(median, "pm") == 0) {
if (hours < 12) {
cout << "Thoi gian 24h: "
<< hours + 12 << ":"
<< setfill('0') << setw(2) << minutes << ":"
<< setfill('0') << setw(2) << seconds;
} else if (hours == 12) {
cout << "Thoi gian 24h: 12:"
<< setfill('0') << setw(2) << minutes << ":"
<< setfill('0') << setw(2) << seconds;
}
} else if (strcmp(median, "am") == 0) {
if (hours < 12) {
cout << "Thoi gian 24h: "
<< setfill('0') << setw(2) << hours << ":"
<< setfill('0') << setw(2) << minutes << ":"
<< setfill('0') << setw(2) << seconds;
} else if (hours == 12) {
cout << "Thoi gian 24h: 00:"
<< setfill('0') << setw(2) << minutes << ":"
<< setfill('0') << setw(2) << seconds;
}
} else {
cout << "Lua chon khong hop le";
}
return 0;
}
Đầu ra mẫu
Nhap gio, phut, giay: 12 07 06 Nhap meridian: pm Thoi gian 12h: 12:07:06pm Thoi gian 24h: 12:07:06 Nhap gio, phut, giay: 01 02 30 Nhap meridian: pm Thoi gian 12h: 01:02:30pm Thoi gian 24h: 13:02:30