Как превратить номер дня в слово (буквы) с ireport?

В настоящее время я работаю в iReport 5.50, создавая официальный документ. Прямо в конце должна быть строка, подобная следующей: «(…) Этот документ продлен седьмого июля две тысячи четырнадцатого года».

Часть «Седьмое июля двух и четырнадцати» — это текущий день. Я хотел бы знать, есть ли способ отображения текущей даты в словах так, как этого требует документ. Пока я знаю только, как получить Название дня недели и Название месяца …

Любая помощь очень ценится!

0

Решение

Хотя то, что вы хотите, связано с датами, это довольно общая проблема.

Что вы хотите, чтобы преобразовать число в его порядковый эквивалент, который является классическим упражнением в программировании.

Вот пример кода PHP (в оригинале я исправил некоторые проблемы):

function numToOrdinalWord($num)
{
$first_word = array('eth', 'First', 'Second', 'Third', 'Fourth', 'Fifth', 'Sixth',
'Seventh', 'Eighth', 'Ninth', 'Tenth', 'Eleventh', 'Twelfth', 'Thirteenth',
'Fourteenth', 'Fifteenth', 'Sixteenth', 'Seventeenth', 'Eighteenth',
'Nineteenth', 'Twentieth');
$second_word = array('', '', 'Twenty', 'Thirty', 'Forty', 'Fifty', 'Sixty', 'Seventy', 'Eighty', 'Ninety');

if ($num <= 20) return ($num == 0) ? 'Zeroth' : $first_word[$num];

$first_num = substr($num, -1, 1);
$second_num = substr($num, -2, 1);

return $string = str_replace(
'y-eth',
'ieth',
$second_word[$second_num] . '-' . $first_word[$first_num]
);
}

Live Demo | Первоначальный источник

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]