morpher.ru +7 (925) 336 9960
nowhere@morpher.ru
 
 
Мой Морфер

Пропись порядковых числительных и дат

.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);
        
    

Параметры:

  1. date – дата для прописи. Значение времени в этом параметре будет проигнорировано.
  2. падеж – падеж, в который необходимо поставить дату.
  3. 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);
        
    

Параметры:

  1. number – число для прописи.
  2. useOne – добавлять ли слово «один»: (одна) тысяча первый, (одно)миллионный и т.п.

Функция возвращает порядковое числительное прописью в мужском роде (которое потом можно просклонять в нужный род методом AgreeOrdinal).

Пример использования

        
            // «миллиард двести тридцать четыре миллиона пятьсот шестьдесят семь тысяч восемьсот девяностый»
            Console.WriteLine (ordinalSpeller.SpellOrdinal (1234567890));
            
            // «один миллиард двести тридцать четыре миллиона пятьсот шестьдесят семь тысяч восемьсот девяностый»
            Console.WriteLine (ordinalSpeller.SpellOrdinal (1234567890, useOne: true));
        
    

Функция склонения порядковых числительных по падежам и родам

        
            public OrdinalResult AgreeOrdinal (string ordinal, string unit, Падеж падеж = Падеж.Именительный);
        
    

Параметры:

  1. ordinal – порядковое числительное в мужском роде, например, пятый.
  2. unit – единица измерения, с которой нужно согласовать числительное, например, колесо.
  3. падеж – падеж, в который необходимо поставить числительное и единицу измерения (пятое колесо, пятого колеса, пятому колесу...).

Функция возвращает исходные порядковое числительное и единицу измерения в указанном падеже в виде структуры OrdinalResult:

        
            public struct OrdinalResult
            {
                public string Ordinal; // порядковое числительное
                public string Unit;    // единица измерения
            }
        
    

Числительное, кроме склонения по падежам, согласуется с единицей измерения по роду, числу и одушевленности:

Числительное Единица измерения Падеж Результат
пятый нога Именительный (кто? что?) пятая нога
пятый колесо Именительный (кто? что?) пятое колесо
пятый сутки Именительный (кто? что?) пятые сутки
первый блин Винительный (кого? что?) первый блин
первый парень Винительный (кого? что?) первого парня

Пример использования

        
            OrdinalResult r = ordinalSpeller.AgreeOrdinal ("первый", "свидание");
            Console.WriteLine ("{0} {1}", r.Ordinal, r.Unit); // «первое свидание» 
        
    

Технические характеристики

  1. Платформы: .NET Framework 2.0+, .NET Standard 2.0+
  2. Все методы потокобезопасны.
  3. Размер пакета: 10K

Зависимости

Для работы модуля Morpher.Russian.Speller.dll необходим модуль Morpher.dll, который поставляется отдельно.

Комплект поставки

Модуль поставляется в виде Nuget-пакета, который содержит следующие файлы:

  1. Morpher.Russian.Speller.dll
  2. Morpher.Russian.Speller.xml — файл с XML-комментариями для показа подсказок в IDE.

История изменений

Дата Версия Описание Версия Morpher.dll
29.07.2019 1.0.0 Релиз первой версии 2.14.9+


 

Библиотеки

© Сергей Слепов, 2003 - 2024.