ПреобразоватьЧислоВРимскуюНотацию

Автор: 1С
ОбщийМодуль.СтроковыеФункцииКлиентСервер
БСП

Выполняет преобразование арабского числа в римское.

// Выполняет преобразование арабского числа в римское.
//
// Параметры:
//  АрабскоеЧисло - Число - число, целое, от 0 до 999;
//  ИспользоватьКириллицу - Булево - использовать в качестве арабских цифр кириллицу или латиницу.
//
// Возвращаемое значение:
//  Строка - число в римской нотации.
//
// Пример:
//  СтроковыеФункцииКлиентСервер.ПреобразоватьЧислоВРимскуюНотацию(17) = "ХVII".
//
Функция ПреобразоватьЧислоВРимскуюНотацию(АрабскоеЧисло, ИспользоватьКириллицу = Истина) Экспорт
	
	РимскоеЧисло = "";
	АрабскоеЧисло = ДополнитьСтроку(АрабскоеЧисло, 3);
	
	Если ИспользоватьКириллицу Тогда
		c1 = "1"; c5 = "У"; c10 = "Х"; c50 = "Л"; c100 ="С"; c500 = "Д"; c1000 = "М";
		
	Иначе
		c1 = "I"; c5 = "V"; c10 = "X"; c50 = "L"; c100 ="C"; c500 = "D"; c1000 = "M";
		
	КонецЕсли;
	
	Единицы	= Число(Сред(АрабскоеЧисло, 3, 1));
	Десятки	= Число(Сред(АрабскоеЧисло, 2, 1));
	Сотни	= Число(Сред(АрабскоеЧисло, 1, 1));
	
	РимскоеЧисло = РимскоеЧисло + ПреобразоватьЦифруВРимскуюНотацию(Сотни, c100, c500, c1000);
	РимскоеЧисло = РимскоеЧисло + ПреобразоватьЦифруВРимскуюНотацию(Десятки, c10, c50, c100);
	РимскоеЧисло = РимскоеЧисло + ПреобразоватьЦифруВРимскуюНотацию(Единицы, c1, c5, c10);
	
	Возврат РимскоеЧисло;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
TurboConf - расширение Конфигуратора 1С

Похожие публикации

ПреобразоватьЧислоВАрабскуюНотацию (БСП)

Преобразовать строку в число

СтрокаСЧисломДляЛюбогоЯзыка (БСП)

ВерсияПлатформыВЧисло (БСП)

ПреобразоватьДвоичныеДанныеВBase64 (БСП)