Форум → Программирование → Пыхнуть хотите? → Готовые решения → Числа прописью с рублями, метрами и секундами
Числа прописью с рублями, метрами и секундами
-
Скоро Новый год, и на многих форумах всплывает вопрос, как бы написать буквами что-нибудь вроде "До Нового года осталось 60 дней" ("шестьдесят" - вместо "60"). Думал, это давно известный, быстрый гоночный велосипед. Поискал в сети - нету ничего хорошего. Есть доступ к сайтам на Битриксе, порылся там - тоже не нашёл готового решения. И вот что у меня получилось:
http://ir2.ru/Propis.php
Код здесь не выкладываю, так как потом нельзя будет исправить. А практика показывает, что исправлять придётся! :-) Пинать просьба без сожалений. -
7 ноября 2011 г. 17:17, спустя 8 минут 7 секунд
Propis::get("1002000219.02") => один миллиард два миллиона двести девятнадцать рублей 02 копейки;
две копейки?*Высокоуровневое абстрактное говно -
7 ноября 2011 г. 19:01, спустя 1 час 43 минуты 26 секунд
Ссылку не открывал, но говорю сразу - такие функции нужно выполнять на стороне клиента, а не сервера, вебдванольно живем всё таки! -
8 ноября 2011 г. 1:21, спустя 6 часов 20 минут 18 секунд
Ivan, а чего на стороне клиента? А если это клиент без ява-скрипта, тот же Гуглобот? -
-
8 ноября 2011 г. 6:17, спустя 4 часа 28 минут 5 секунд
Ivan, честно говоря, мне самому пока эти функции не нужны ни на сервере, ни на клиенте :-). Так, чисто для прикола… -
-
-
8 ноября 2011 г. 7:23, спустя 44 минуты 9 секунд
запустить не получилось, требует хедер.пхп
потом ошибка Undefined offset: 1 в строке $res[] = self::num2word($group[1]);
и ещё подозреваю некорректно будут обработаны числа 11 - 14 (11 копейка, 12 копейки)не всё полезно, что в swap полезло -
8 ноября 2011 г. 14:20, спустя 6 часов 56 минут 57 секунд
запустить не получилось, требует хедер.пхп
потом ошибка Undefined offset: 1 в строке $res[] = self::num2word($group[1]);
и ещё подозреваю некорректно будут обработаны числа 11 - 14 (11 копейка, 12 копейки)
хедер1.пхп выводит только строки с моими примерами. Добавил комментарий об этом (что при использовании у себя хедер1.пхп надо просто удалять).
Добавил первыми строками примеры с 11 и 12 копеек.
Ошибка Undefined offset. Виноват, не описал входящие параметры. Скрипт принимает не всё:
1) Функция Propis::get() принимает строку из нескольких чисел, разделённых разделителем (любым "не-числом"): если чисел 2 (например, "33.44"), скрипт считает их рублями и копейками;
если чисел больше двух - (справа налево) секундами, минутами, часами, днями, месяцами, годами. Если число одно - будет ошибка! (не надо передавать в функцию get() одно число :-).
2) Функция Propis::get_one(число, массив) принимает первым параметром одно число, вторым - массив из трёх "классических" plural-словоформ (типа "копейка", "копейки", "копеек").
Ну, что они возвращают, видно на экране в примере. -
8 ноября 2011 г. 14:30, спустя 10 минут 28 секунд
p.s. Только не спрашивайте про n_time_diff() - я сам плохо понимаю, как такое может работать. Но как-то работает! :-)Спустя 211 сек.две копейки?
не сразу понял вопрос. Вывод рублей прописью может понадобиться только в бухгалтерских документах (счёте, накладной, СФ), а там копейки требуется выводить цифрами.
Пожалуйста, авторизуйтесь, чтобы написать комментарий!