นี่คือโปรแกรม C++ สำหรับแปลงเวลาจากรูปแบบ 12 ชั่วโมง (AM/PM) เป็นรูปแบบ 24 ชั่วโมง
อัลกอริทึม
เริ่มต้น ใน main() ถ้า median = pm ตรวจสอบว่าชั่วโมงที่ป้อนน้อยกว่า 12 แล้วบวก 12 เข้ากับชั่วโมงและพิมพ์เวลาในรูปแบบ 24 ชั่วโมง ตรวจสอบว่าชั่วโมงที่ป้อนเท่ากับ 12 แล้วพิมพ์ "00" เป็นชั่วโมงและพิมพ์เวลาในรูปแบบ 24 ชั่วโมง ถ้าไม่ใช่ ถ้า median = am ตรวจสอบว่าชั่วโมงที่ป้อนน้อยกว่า 12 แล้วพิมพ์เวลาในรูปแบบ 24 ชั่วโมง ตรวจสอบว่าชั่วโมงที่ป้อนเท่ากับ 12 แล้วพิมพ์ "12" เป็นชั่วโมงและพิมพ์เวลาในรูปแบบ 24 ชั่วโมง ถ้าไม่ใช่ พิมพ์ "wrong choice" จบ
ตัวอย่างโค้ด
#include<iostream> #include<string.h> #include <iomanip> using namespace std; int main() { int hours,minutes,seconds,h1,m1,s1; char median[10]; cout<<"Enter hours, minutes, seconds:"; cin>>hours; cin>>minutes; cin>>seconds; cout<<"Enter median:"; cin>>median; cout<<"Time in 12 hour format:"<<setfill('0') << setw(2) <<hours<<":"<<setfill('0') << setw(2) <<minutes<<":"<<setfill('0') << setw(2) <<seconds<<median<<endl; //setw()=กำหนดความกว้างของฟิลด์ //setfill()=กำหนดตัวอักษรเป็นตัวเติมของสตรีม if(strcmp(median,"pm")==0) { //เปรียบเทียบสตริง "0" คือ true "1" คือ false if (hours<12) { h1=hours+12; m1=minutes; s1=seconds; cout<<"Time in 24 hour format:" <<h1<<":"<<setfill('0') << setw(2) <<m1<<":"<<setfill('0') << setw(2) <<s1<<median; } else if(hours=12) { h1=12; m1=minutes; s1=seconds; cout<<"Time in 24 hour format:"<<h1<<":"<<setfill('0') << setw(2) <<m1<<":"<<setfill('0') << setw(2) <<s1<<median; } } else if(strcmp(median,"am")==0) { if (hours<12) { h1=hours; m1=minutes; s1=seconds; cout<<"Time in 24 hour format:"<<setfill('0') << setw(2) <<h1<<":"<<setfill('0') << setw(2) <<m1<<":"<<setfill('0') << setw(2) <<s1<<median; } else if(hours=12) { m1=minutes; s1=seconds; cout<<"Time in 24 hour format:"<<"00"<<":"<<setfill('0') << setw(2) <<m1<<":"<<setfill('0') << setw(2) <<s1<<median; } } else { printf("Wrong choice"); } }
ผลลัพธ์
Enter hours, minutes, seconds:12 07 06 Enter median:pm Time in 12 hour format:12:07:06pm Time in 24 hour format:12:07:06pm Enter hours, minutes, seconds:01 02 30 Enter median:pm Time in 12 hour format:01:02:30pm Time in 24 hour format:13:2:30pm Enter hours, minutes, seconds:10 10 03 Enter median:am Time in 12 hour format:10:10:03am Time in 24 hour format:10:10:03am Enter hours, minutes, seconds:12 02 04 Enter median:am Time in 12 hour format:12:02:04am Time in 24 hour format:00:02:04am