private string GetMinuteKeyWord(int minutes, NumberDeclension declension) { if (minutes > 20) { minutes %= 10; } switch (declension) { case NumberDeclension.N_ti: if (minutes == 1) { return(MINUTE_KEY_WORD_MINUTY); } return(MINUTE_KEY_WORD_MINUT); default: if (minutes == 1) { return(MINUTE_KEY_WORD_MINUTA); } if (2 <= minutes && minutes <= 4) { return(MINUTE_KEY_WORD_MINUTY); } return(MINUTE_KEY_WORD_MINUT); } }
public string[] GetSoundForNumber(int number, bool useFeminine, NumberDeclension declension) { CodeContract.Requires(-999999 <= number && number <= 999999); var sounds = new List <string>(); if (number < 0) { sounds.Add(_numbersSoundsDirPath + "minus"); number *= -1; } if (0 <= number && number <= 20) { sounds.Add(GetSoundForMonotonousNumber(number, useFeminine, declension)); } else if (number < 100) { sounds.AddRange(GetSoundForNumberFrom21To99(number, useFeminine, declension)); } else if (number < 1000) { sounds.AddRange(GetSoundForNumberFrom100To999(number, useFeminine, declension)); } else if (number < 1000000) { sounds.AddRange(GetSoundForNumberFrom1000To999999(number, useFeminine, declension)); } return(sounds.ToArray()); }
private string GetSoundForMonotonousNumber(int number, bool useFeminine, NumberDeclension declension) { if (useFeminine) { switch (declension) { case NumberDeclension.N_ti: if (number == 1) { return(GetNumberSoundFilePath(declension, "1oi")); } break; case NumberDeclension.None: if (number == 1) { return(GetNumberSoundFilePath(declension, "1a")); } if (number == 2) { return(GetNumberSoundFilePath(declension, "2e")); } break; } } return(GetNumberSoundFilePath(declension, number)); }
private string GetNumberSoundFilePath(NumberDeclension declension, object numberName) { if (declension == NumberDeclension.None) { return(string.Format("{0}{1}", _numbersSoundsDirPath, numberName)); } return(string.Format("{0}{1}/{2}", _numbersSoundsDirPath, declension, numberName)); }
public string[] GetSoundForMinutes(int minutes, bool useFemale, NumberDeclension declension) { CodeContract.Requires(0 <= minutes && minutes <= 59); var sounds = new List <string>(); sounds.AddRange(GetSoundForNumber(minutes, useFemale, declension)); sounds.Add(GetSoundForMinuteWord(minutes, declension)); return(sounds.ToArray()); }
public string[] GetSoundForHours(int hours, bool useFeminine, NumberDeclension declension) { CodeContract.Requires(0 <= hours && hours <= 23); var sounds = new List <string>(); sounds.AddRange(GetSoundForNumber(hours, useFeminine, declension)); var soundForHourWord = string.Format("{0}{1}", _timesSoundsDirPath, GetHourKeyWord(hours, declension)); sounds.Add(soundForHourWord); return(sounds.ToArray()); }
private string GetHourKeyWord(int hours, NumberDeclension declension) { switch (declension) { case NumberDeclension.N_ti: if (hours == 1 || hours == 21) { return(HOUR_KEY_WORD_CHAASA); } return(HOUR_KEY_WORD_CHASOV); default: if (hours == 1 || hours == 21) { return(HOUR_KEY_WORD_CHAS); } if ((2 <= hours && hours <= 4) || hours >= 22) { return(HOUR_KEY_WORD_CHASA); } return(HOUR_KEY_WORD_CHASOV); } }
private string GetSoundForMinuteWord(int minutes, NumberDeclension declension) { return string.Format("{0}{1}", _timesSoundsDirPath, GetMinuteKeyWord(minutes, declension)); }
private string GetNumberSoundFilePath(NumberDeclension declension, object numberName) { if (declension == NumberDeclension.None) return string.Format("{0}{1}", _numbersSoundsDirPath, numberName); return string.Format("{0}{1}/{2}", _numbersSoundsDirPath, declension, numberName); }
private string GetMinuteKeyWord(int minutes, NumberDeclension declension) { if (minutes > 20) minutes %= 10; switch (declension) { case NumberDeclension.N_ti: if (minutes == 1) return MINUTE_KEY_WORD_MINUTY; return MINUTE_KEY_WORD_MINUT; default: if (minutes == 1) return MINUTE_KEY_WORD_MINUTA; if (2 <= minutes && minutes <= 4) return MINUTE_KEY_WORD_MINUTY; return MINUTE_KEY_WORD_MINUT; } }
private string GetHourKeyWord(int hours, NumberDeclension declension) { switch (declension) { case NumberDeclension.N_ti: if (hours == 1 || hours == 21) return HOUR_KEY_WORD_CHAASA; return HOUR_KEY_WORD_CHASOV; default: if (hours == 1 || hours == 21) return HOUR_KEY_WORD_CHAS; if ((2 <= hours && hours <= 4) || hours >= 22) return HOUR_KEY_WORD_CHASA; return HOUR_KEY_WORD_CHASOV; } }
public string[] GetSoundForNumber(int number, bool useFeminine, NumberDeclension declension) { CodeContract.Requires(-999999 <= number && number <= 999999); var sounds = new List<string>(); if (number < 0) { sounds.Add(_numbersSoundsDirPath + "minus"); number *= -1; } if (0 <= number && number <= 20) { sounds.Add(GetSoundForMonotonousNumber(number, useFeminine, declension)); } else if (number < 100) { sounds.AddRange(GetSoundForNumberFrom21To99(number, useFeminine, declension)); } else if (number < 1000) { sounds.AddRange(GetSoundForNumberFrom100To999(number, useFeminine, declension)); } else if (number < 1000000) { sounds.AddRange(GetSoundForNumberFrom1000To999999(number, useFeminine, declension)); } return sounds.ToArray(); }
public string[] GetSoundForMinutes(int minutes, bool useFemale, NumberDeclension declension) { CodeContract.Requires(0 <= minutes && minutes <= 59); var sounds = new List<string>(); sounds.AddRange(GetSoundForNumber(minutes, useFemale, declension)); sounds.Add(GetSoundForMinuteWord(minutes, declension)); return sounds.ToArray(); }
private IEnumerable <string> GetSoundForNumberFrom21To99(int number, bool useFeminine, NumberDeclension declension) { var sounds = new List <string>(); var ten = number / 10 * 10; var one = number % 10; if (ten != 0) { sounds.Add(GetSoundForMonotonousNumber( ten, useFeminine, (one == 0 || declension == NumberDeclension.N_ti) ? declension : NumberDeclension.None)); } if (one != 0) { sounds.Add(GetSoundForMonotonousNumber(one, useFeminine, declension)); } return(sounds); }
private IEnumerable<string> GetSoundForNumberFrom100To999(int number, bool useFeminine, NumberDeclension declension) { var sounds = new List<string>(); var hundred = number / 100 * 100; var tenWithOne = number % 100; sounds.Add(GetSoundForMonotonousNumber(hundred, useFeminine, tenWithOne == 0 ? declension : NumberDeclension.None)); if (tenWithOne != 0) { if (tenWithOne <= 20) sounds.Add(GetSoundForMonotonousNumber(tenWithOne, useFeminine, declension)); else sounds.AddRange(GetSoundForNumberFrom21To99(tenWithOne, useFeminine, declension)); } return sounds; }
private string GetSoundForMinuteWord(int minutes, NumberDeclension declension) { return(string.Format("{0}{1}", _timesSoundsDirPath, GetMinuteKeyWord(minutes, declension))); }
private string GetSoundForMonotonousNumber(int number, bool useFeminine, NumberDeclension declension) { if (useFeminine) { switch (declension) { case NumberDeclension.N_ti: if (number == 1) return GetNumberSoundFilePath(declension, "1oi"); break; case NumberDeclension.None: if (number == 1) return GetNumberSoundFilePath(declension, "1a"); if (number == 2) return GetNumberSoundFilePath(declension, "2e"); break; } } return GetNumberSoundFilePath(declension, number); }
private IEnumerable <string> GetSoundForNumberFrom1000To999999(int number, bool useFeminine, NumberDeclension declension) { var sounds = new List <string>(); var thousand = number / 1000; var hundred = number % 1000; sounds.AddRange(GetSoundForNumber(thousand, true, hundred == 0 ? declension : NumberDeclension.None)); var soundForThousandWord = string.Format("{0}{1}", _numbersSoundsDirPath, GetThousandKeyWord(thousand)); sounds.Add(soundForThousandWord); if (hundred != 0) { sounds.AddRange(GetSoundForNumber(hundred, useFeminine, declension)); } return(sounds); }
private IEnumerable<string> GetSoundForNumberFrom1000To999999(int number, bool useFeminine, NumberDeclension declension) { var sounds = new List<string>(); var thousand = number / 1000; var hundred = number % 1000; sounds.AddRange(GetSoundForNumber(thousand, true, hundred == 0 ? declension : NumberDeclension.None)); var soundForThousandWord = string.Format("{0}{1}", _numbersSoundsDirPath, GetThousandKeyWord(thousand)); sounds.Add(soundForThousandWord); if (hundred != 0) sounds.AddRange(GetSoundForNumber(hundred, useFeminine, declension)); return sounds; }
private IEnumerable <string> GetSoundForNumberFrom100To999(int number, bool useFeminine, NumberDeclension declension) { var sounds = new List <string>(); var hundred = number / 100 * 100; var tenWithOne = number % 100; sounds.Add(GetSoundForMonotonousNumber(hundred, useFeminine, tenWithOne == 0 ? declension : NumberDeclension.None)); if (tenWithOne != 0) { if (tenWithOne <= 20) { sounds.Add(GetSoundForMonotonousNumber(tenWithOne, useFeminine, declension)); } else { sounds.AddRange(GetSoundForNumberFrom21To99(tenWithOne, useFeminine, declension)); } } return(sounds); }
private IEnumerable<string> GetSoundForNumberFrom21To99(int number, bool useFeminine, NumberDeclension declension) { var sounds = new List<string>(); var ten = number / 10 * 10; var one = number % 10; if (ten != 0) sounds.Add(GetSoundForMonotonousNumber( ten, useFeminine, (one == 0 || declension == NumberDeclension.N_ti) ? declension : NumberDeclension.None)); if (one != 0) sounds.Add(GetSoundForMonotonousNumber(one, useFeminine, declension)); return sounds; }
public string[] GetSoundForHours(int hours, bool useFeminine, NumberDeclension declension) { CodeContract.Requires(0 <= hours && hours <= 23); var sounds = new List<string>(); sounds.AddRange(GetSoundForNumber(hours, useFeminine, declension)); var soundForHourWord = string.Format("{0}{1}", _timesSoundsDirPath, GetHourKeyWord(hours, declension)); sounds.Add(soundForHourWord); return sounds.ToArray(); }