В настоящее время я работаю в iReport 5.50, создавая официальный документ. Прямо в конце должна быть строка, подобная следующей: «(…) Этот документ продлен седьмого июля две тысячи четырнадцатого года».
Часть «Седьмое июля двух и четырнадцати» — это текущий день. Я хотел бы знать, есть ли способ отображения текущей даты в словах так, как этого требует документ. Пока я знаю только, как получить Название дня недели и Название месяца …
Любая помощь очень ценится!
Хотя то, что вы хотите, связано с датами, это довольно общая проблема.
Что вы хотите, чтобы преобразовать число в его порядковый эквивалент, который является классическим упражнением в программировании.
Вот пример кода 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]
);
}
Других решений пока нет …