Новый взгляд на старые вещи

Добро пожаловать на Пыху!

Логин:
Пароль:
 

Нет прописки? Зарегистрируйся!

Новости

Пыха информатор 3.1
Еще более удобное оповещение о флуде!

Краснодарское время: 25 Май, 2012, 06:12:21

Страниц: [1]
Печать
Автор Тема: Числа прописью с рублями, метрами и секундами  (Прочитано 225 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
stopkran    ↓ 
07 Ноябрь, 2011, 05:09:27
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 58
Сила слова: 0

Скоро Новый год, и на многих форумах всплывает вопрос, как бы написать буквами что-нибудь вроде "До Нового года осталось 60 дней" ("шестьдесят" - вместо "60"). Думал, это давно известный, быстрый гоночный велосипед. Поискал в сети - нету ничего хорошего. Есть доступ к сайтам на Битриксе, порылся там - тоже не нашёл готового решения. И вот что у меня получилось:
 
http://ir2.ru/Propis.php
 
Код здесь не выкладываю, так как потом нельзя будет исправить. А практика показывает, что исправлять придётся! :-) Пинать просьба без сожалений.
Записан
Stasovsky    ↓ 
07 Ноябрь, 2011, 05:17:34 , спустя 8 минут 7 секунд
НЕ ХУЕТА! ХУЕТА!

Сенсей XD
Группа: Джедаи

Карма: 54
Сообщений: 3654
Сила слова: 1.48

Propis::get("1002000219.02") => один миллиард два миллиона двести девятнадцать рублей 02 копейки;
две копейки?*
Записан
Ivan    ↓ 
07 Ноябрь, 2011, 07:01:00 , спустя 1 час 43 минуты 26 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 27
Сообщений: 1366
Сила слова: 1.98

Ссылку не открывал, но говорю сразу - такие функции нужно выполнять на стороне клиента, а не сервера, вебдванольно живем всё таки!
Записан

Givi    ↓ 
08 Ноябрь, 2011, 01:21:18 , спустя 6 часов 20 минут 18 секунд
НЕ ХУЕТА! ХУЕТА!

Группа: Адекваты

Карма: 42
Сообщений: 2305
Сила слова: 1.82

Ivan, а чего на стороне клиента? А если это клиент без ява-скрипта, тот же Гуглобот?
Записан

Все, что говорят другие - неправда! До тех пор, пока ты сам в это не поверишь.
Если человек дурак, то... чур это не я!
kostyl    ↓ 
08 Ноябрь, 2011, 01:49:12 , спустя 27 минут 54 секунды
НЕ ХУЕТА! ХУЕТА!

занедельный антипаттерн
Группа: Джедаи

Карма: 60
Сообщений: 3522
Сила слова: 1.7

Givi, ты уверен что гуглобот без яваскрипта? ))
Записан

качество жизни обратно пропорционально количеству лени
stopkran    ↓ 
08 Ноябрь, 2011, 06:17:17 , спустя 4 часа 28 минут 5 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 58
Сила слова: 0

Ivan, честно говоря, мне самому пока эти функции не нужны ни на сервере, ни на клиенте :-). Так, чисто для прикола...
Записан
master    ↓ 
08 Ноябрь, 2011, 06:29:31 , спустя 12 минут 14 секунд
НЕ ХУЕТА! ХУЕТА!

Квадратов сколько видишь ты?
Группа: Джедаи

Карма: 44
Сообщений: 2080
Сила слова: 2.12

цифрами ок
Записан

master    ↓ 
08 Ноябрь, 2011, 06:39:08 , спустя 9 минут 37 секунд
НЕ ХУЕТА! ХУЕТА!

Квадратов сколько видишь ты?
Группа: Джедаи

Карма: 44
Сообщений: 2080
Сила слова: 2.12

скрипт хуета
Записан

master    ↓ 
08 Ноябрь, 2011, 07:23:17 , спустя 44 минуты 9 секунд
НЕ ХУЕТА! ХУЕТА!

Квадратов сколько видишь ты?
Группа: Джедаи

Карма: 44
Сообщений: 2080
Сила слова: 2.12

запустить не получилось, требует хедер.пхп
потом ошибка  Undefined offset: 1 в строке $res[] = self::num2word($group[1]);
и ещё подозреваю некорректно будут обработаны числа 11 - 14 (11  копейка, 12 копейки)
Записан

stopkran    ↓ 
08 Ноябрь, 2011, 02:20:14 , спустя 6 часов 56 минут 57 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 58
Сила слова: 0


запустить не получилось, требует хедер.пхп
потом ошибка  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-словоформ (типа "копейка", "копейки", "копеек").
 
Ну, что они возвращают, видно на экране в примере.
Записан
stopkran    ↓ 
08 Ноябрь, 2011, 02:30:42 , спустя 10 минут 28 секунд
НЕ ХУЕТА! ХУЕТА!

Карма: 0
Сообщений: 58
Сила слова: 0

p.s. Только не спрашивайте про n_time_diff() - я сам плохо понимаю, как такое может работать. Но как-то работает! :-)
Спустя 3 минуты 31 секунду добавил
две копейки?
не сразу понял вопрос. Вывод рублей прописью может понадобиться только в бухгалтерских документах (счёте, накладной, СФ), а там копейки требуется выводить цифрами.
Записан
Страниц: [1]
Печать
 

Перейти в:  

Этот топик скрыли: adw0rd, artoodetoo