Пропись порядковых числительных и дат
.NET-библиотека Morpher.Russian.Speller.dll реализует функции прописи порядковых числительных и дат на русском языке:
Использование библиотеки
Весь API библиотеки Morpher.Russian.Speller.dll можно схематично представить следующим кодом:
namespace Morpher.Russian
{
public class DateSpeller
{
public DateSpeller(OrdinalSpeller ordinalSpeller);
public string SpellDate (
DateTime date,
Падеж падеж = Падеж.Именительный,
bool useOne = false);
}
public class OrdinalSpeller
{
public OrdinalSpeller(Склонятель склонятель);
public string SpellOrdinal (
long number,
bool useOne = false);
public OrdinalResult AgreeOrdinal (
string ordinal,
string unit,
Падеж падеж = Падеж.Именительный);
}
}
Функция прописи даты
public string SpellDate (
DateTime date,
Падеж падеж = Падеж.Именительный,
bool useOne = false);
Параметры:
- date – дата для прописи. Значение времени в этом параметре будет проигнорировано.
- падеж – падеж, в который необходимо поставить дату.
- useOne – писать ли «одна» перед словом «тысяча»:
тысяча девятьсот пятого года или
одна тысяча девятьсот пятого года.
Функция возвращает дату прописью, например
первое января две тысячи первого года.
Пример использования
var склонятель = new Склонятель("%YOUR KEY%");
var ordinalSpeller = new OrdinalSpeller(склонятель);
var dateSpeller = new DateSpeller(ordinalSpeller);
// «Сегодня двадцать второе июля две тысячи девятнадцатого года»
Console.WriteLine ("Сегодня {0}",
dateSpeller.SpellDate(DateTime.Now));
// «01.05.2018 в творительном падеже: первым мая две тысячи восемнадцатого года»
Console.WriteLine ("01.05.2018 в творительном падеже: {0}",
dateSpeller.SpellDate(new DateTime(2018, 5, 1), Падеж.Творительный));
Функция прописи порядковых числительных
public string SpellOrdinal (long number, bool useOne = false);
Параметры:
- number – число для прописи.
- useOne – добавлять ли слово «один»: (одна) тысяча первый, (одно)миллионный и т.п.
Функция возвращает порядковое числительное прописью в мужском роде (которое потом можно просклонять в нужный род методом AgreeOrdinal).
Пример использования
// «миллиард двести тридцать четыре миллиона пятьсот шестьдесят семь тысяч восемьсот девяностый»
Console.WriteLine (ordinalSpeller.SpellOrdinal (1234567890));
// «один миллиард двести тридцать четыре миллиона пятьсот шестьдесят семь тысяч восемьсот девяностый»
Console.WriteLine (ordinalSpeller.SpellOrdinal (1234567890, useOne: true));
Функция склонения порядковых числительных по падежам и родам
public OrdinalResult AgreeOrdinal (string ordinal, string unit, Падеж падеж = Падеж.Именительный);
Параметры:
- ordinal – порядковое числительное в мужском роде, например, пятый.
- unit – единица измерения, с которой нужно согласовать числительное, например, колесо.
- падеж – падеж, в который необходимо поставить числительное и единицу измерения (пятое колесо, пятого колеса, пятому колесу...).
Функция возвращает исходные порядковое числительное и единицу измерения в указанном падеже в виде структуры OrdinalResult:
public struct OrdinalResult
{
public string Ordinal; // порядковое числительное
public string Unit; // единица измерения
}
Числительное, кроме склонения по падежам, согласуется с единицей измерения по роду, числу и одушевленности:
Числительное |
Единица измерения |
Падеж |
Результат |
пятый |
нога |
Именительный (кто? что?) |
пятая нога |
пятый |
колесо |
Именительный (кто? что?) |
пятое колесо |
пятый |
сутки |
Именительный (кто? что?) |
пятые сутки |
первый |
блин |
Винительный (кого? что?) |
первый блин |
первый |
парень |
Винительный (кого? что?) |
первого парня |
Пример использования
OrdinalResult r = ordinalSpeller.AgreeOrdinal ("первый", "свидание");
Console.WriteLine ("{0} {1}", r.Ordinal, r.Unit); // «первое свидание»
Технические характеристики
- Платформы: .NET Framework 2.0+, .NET Standard 2.0+
- Все методы потокобезопасны.
- Размер пакета: 10K
Зависимости
Для работы модуля Morpher.Russian.Speller.dll необходим модуль Morpher.dll, который поставляется отдельно.
Комплект поставки
Модуль поставляется в виде Nuget-пакета, который содержит следующие файлы:
- Morpher.Russian.Speller.dll
- Morpher.Russian.Speller.xml — файл с XML-комментариями для показа подсказок в IDE.
История изменений
Дата |
Версия |
Описание |
Версия Morpher.dll |
29.07.2019 |
1.0.0 |
Релиз первой версии |
2.14.9+ |