บทนำ
ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมที่แปลงเวลาที่กำหนดเป็นคำอ่าน โดยเราจะได้รับเวลาในรูปแบบดิจิทัล มาแปลงเป็นคำภาษาอังกฤษ
ตัวอย่างโค้ด
#include <bits/stdc++.h>
using namespace std;
// แปลงเวลาเป็นคำอ่าน
void convert_time(int h, int m) {
char nums[][64] = {
"zero", "one", "two", "three", "four",
"five", "six", "seven", "eight",
"nine","ten", "eleven", "twelve",
"thirteen","fourteen", "fifteen",
"sixteen", "seventeen","eighteen",
"nineteen", "twenty", "twenty one",
"twenty two", "twenty three",
"twenty four","twenty five", "twenty six",
"twenty seven","twenty eight", "twenty nine",
};
if (m == 0)
printf("%s o' clock\n", nums[h]);
else if (m == 1)
printf("one minute past %s\n", nums[h]);
else if (m == 59)
printf("one minute to %s\n", nums[(h % 12) + 1]);
else if (m == 15)
printf("quarter past %s\n", nums[h]);
else if (m == 30)
printf("half past %s\n", nums[h]);
else if (m == 45)
printf("quarter to %s\n", nums[(h % 12) + 1]);
else if (m <= 30)
printf("%s minutes past %s\n", nums[m], nums[h]);
else if (m > 30)
printf("%s minutes to %s\n", nums[60 - m], nums[(h % 12) + 1]);
}
int main() {
int h = 8;
int m = 29;
convert_time(h, m);
return 0;
}
ผลลัพธ์
twenty nine minutes past eight
คำอธิบาย
โปรแกรมใช้ลอจิกการอ่านเวลาภาษาอังกฤษมาตรฐาน:
- m = 0: อ่านว่า "X o'clock"
- m = 15: "quarter past X"
- m = 30: "half past X"
- m = 45: "quarter to X+1"
- m <= 30: "X minutes past Y"
- m > 30: "60-X minutes to Y+1"
อาร์เรย์ nums เก็บคำอ่านตัวเลข 0-29 สำหรับนาที และ 1-12 สำหรับชั่วโมง