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

แปลงเวลาเป็นคำอ่านใน C++

บทนำ

ในบทช่วยสอนนี้ เราจะพูดถึงโปรแกรมที่แปลงเวลาที่กำหนดเป็นคำอ่าน โดยเราจะได้รับเวลาในรูปแบบดิจิทัล มาแปลงเป็นคำภาษาอังกฤษ

ตัวอย่างโค้ด

#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 สำหรับชั่วโมง