⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 timeconverter.cs

📁 将数字时间转换为英语口语表达形式
💻 CS
字号:
using System;
using System.Collections.Generic;
using System.Text;

namespace TimeConvert
{
    /// <summary>
    /// 时间转换成语言表达类
    /// </summary>
    class TimeConverter
    {
        public static string Convert(int Hour, int Minute)
        {
            string result = "It is ";

            if (!(((Hour >= 0) && (Hour < 13)) && ((Minute >= 0) && (Minute < 60))))
            {
                result += "invalid data!";
                return result;
            }

            result += GetTimeString(Hour, Minute);
            return result;
        }

        private static string GetTimeString(int Hour, int Minute)
        {
            string result = "";
            string sHour = "";
            string sMinute = "";
            string connect = "";

            if ((Hour == 0) && (Minute == 0))
            {
                result = "the end!";
            }
            else
            {
                if (Minute > 30)
                {
                    if (Hour == 12)
                        sHour = GetNumberString(1);
                    else
                        sHour = GetNumberString(Hour + 1);
                    sMinute = GetNumberString(60 - Minute);
                    connect = " to ";
                }
                else if ((Minute != 0) && (Minute <= 30))
                {
                    if (Hour == 0)
                        sHour = GetNumberString(12);
                    else
                        sHour = GetNumberString(Hour);
                    sMinute = GetNumberString(Minute);
                    connect = " past ";
                }
                else if (Minute == 0)
                {
                    sHour = GetNumberString(Hour) + " o'clock";
                }
                result = sMinute + connect + sHour;
            }
            return result;
        }

        private static string GetNumberString(int Number)
        {
            string result = "";
            string part2 = "";
            string part1 = "";

            if (Number <= 19)
            {
                part2 = GetPart(Number);
            }
            else
            {
                part2 = GetPart((int)(Number / 10 * 10));

                if (Number % 10 != 0)
                {
                    part1 = GetPart(Number % 10);
                }
            }

            if (part1 != "")
                result = part2 + " " + part1;
            else
                result = part2;
            return result;
        }

        private static string GetPart(int number)
        {
            string result="";

            switch (number)
            {
                case 1:
                    result = "one";
                    break;
                case 2:
                    result = "two";
                    break;
                case 3:
                    result = "three";
                    break;
                case 4:
                    result = "four";
                    break;
                case 5:
                    result = "five";
                    break;
                case 6:
                    result = "six";
                    break;
                case 7:
                    result = "seven";
                    break;
                case 8:
                    result = "eight";
                    break;
                case 9:
                    result = "night";
                    break;
                case 10:
                    result = "ten";
                    break;
                case 11:
                    result = "eleven";
                    break;
                case 12:
                    result = "twelve";
                    break;
                case 13:
                    result = "thirteen";
                    break;
                case 14:
                    result = "fourteen";
                    break;
                case 15:
                    result = "a quarter";
                    break;
                case 16:
                    result = "sixteen";
                    break;
                case 17:
                    result = "seventeen";
                    break;
                case 18:
                    result = "eighteen";
                    break;
                case 19:
                    result = "nighteen";
                    break;
                case 20:
                    result = "twenty";
                    break;
                case 30:
                    result = "half";
                    break;
                case 40:
                    result = "forty";
                    break;
                case 50:
                    result = "fifty";
                    break;
            }
            return result;
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -