Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- namespace ConsoleApp88
- {
- class Program
- {
- /// <summary>
- /// Program Entry
- /// </summary>
- /// <param name="args">Unused Args</param>
- static void Main(string[] args)
- {
- string input = string.Empty;
- do
- {
- try
- {
- Console.WriteLine("Please enter a number: ");
- input = Console.ReadLine();
- // Fetch result if string is not empty
- if (input != string.Empty)
- {
- string retVal = string.Empty;
- // Add cents if not provided
- if (!input.Contains(".")) input += ".0";
- // Split string by . to dollars and cent
- string[] i = input.Split('.');
- // Get dollar value
- retVal = NumbersToWav(int.Parse(i[0])) + " + dollars.wav";
- // Get cent value
- if (int.Parse(i[1]) > 0) retVal += " and " + NumbersToWav(int.Parse(i[1])) + " + cents.wav";
- // Print result
- Console.WriteLine(retVal + "\r\n");
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine("Error {0}\r\nPlease enter a valid number.\r\n", ex.Message);
- }
- } while (input != string.Empty);
- }
- /// <summary>
- /// Converts numeric value to .wav file names
- /// </summary>
- /// <param name="number">Number between -2,147,483,648 to +2,147,483,648</param>
- /// <returns>Concated .wav file names based on numbers</returns>
- public static string NumbersToWav(int number)
- {
- string retVal = string.Empty;
- if (number == 0) return "zero.wav";
- if (number < 0) return "minus.wav" + NumbersToWav(-number);
- if (number > 99) ResolveOver99(ref number, ref retVal);
- if (number > 0) ResolveLessThan100(number, ref retVal);
- return retVal; //.Trim().Trim('+').Trim();
- }
- /// <summary>
- /// Adds + sign if input is not empty
- /// </summary>
- /// <param name="input">String to append to</param>
- /// <returns>"+" + input</returns>
- public static string AddPlusSign(string input)
- {
- return (input == string.Empty ? string.Empty : " + ");
- }
- /// <summary>
- /// Resolves numbers over 99
- /// </summary>
- /// <param name="number">used to evaluate the number and returs remainder</param>
- /// <param name="retVal">used for results, appends to existing data</param>
- public static void ResolveOver99(ref int number, ref string retVal)
- {
- // Greater or equal to million
- if ((number / 1000000) > 0)
- {
- retVal += AddPlusSign(retVal) + NumbersToWav(number / 1000000) + " + million.wav"; // get millions value
- number %= 1000000; // set remainder from millions value
- }
- // Greater or equal to thousand
- if ((number / 1000) > 0)
- {
- retVal += AddPlusSign(retVal) + NumbersToWav(number / 1000) + " + thousand.wav"; // get thousands value
- number %= 1000; // set remainder from thousands value
- }
- // Greater or equal to hundred
- if ((number / 100) > 0)
- {
- retVal += AddPlusSign(retVal) + NumbersToWav(number / 100) + " + hundred.wav"; // get hundreds value
- number %= 100; // set remainder from hundreds value
- }
- }
- /// <summary>
- /// Resolves numbers less than 100
- /// </summary>
- /// <param name="number">used to evaluate the number</param>
- /// <param name="retVal">used for results, appends to existing data</param>
- public static void ResolveLessThan100(int number, ref string retVal)
- {
- if (number < 20)
- {
- retVal += AddPlusSign(retVal) + number + ".wav";
- }
- else
- {
- retVal += AddPlusSign(retVal) + (number - (number % 10)) + ".wav";
- if ((number % 10) > 0)
- {
- retVal += AddPlusSign(retVal) + number % 10 + ".wav";
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement