Однажды в разрабатываемом проекте мне понадобилось генерировать платёжные документы. В них, как это принято, необходимо было выводить сумму платежа прописью на русском языке. Валют могло быть три: рубли, евро и доллары. Копейки и центы прописью не выводились. А ещё нужно было прописью вывести количество позиций. Примерно так:
-
Двадцать рублей 50 копееек.
-
Тридцать три доллара 25 центов.
-
Пять позиций.
К сожалению, найти готовую бесплатную библиотеку, которая выполняла бы эти функции мне не удалось, а дополнять существующие библиотеки было труднее, чем писать с нуля :-). Потому я решил написать функции вывода чисел прописью, конкретно под мои потребности и реализовать возможность расширения количества денежных единиц.
Оказалось, что сделать это можно за несколько часов. При этом количество валют можно легко расширять, просто передавая в качестве параметров, род валюты и слова (склонения), соответствующие количеству 1, 2 и 5 элементов (например, доллар/доллара/долларов).
Так родилась небольшая, но весьма “юзабельная” библиотечка, реализующая этот функционал. “Пощупать” функционал можно в нашем репозитории на гитхабе https://github.com/HighTechnologiesCenter/russian-numbers-to-text. You are welcome!
Метки: .net, библиотека, с++, числа