![]() |
Прямой отсчёт от даты события
Уважаемые профессионалы, нужна ваша помощь.
Нашла в сети код для реализации во флэш прямого отсчёта даты (метрики). Код работает, но к сожалению считает только дни. Код:
// Создаём текстовое поле для отображения данныхЧто бы выглядело примерно так: "Со дня нашей свадьбы прошло: 5 лет, 8 месяцев, 24 дня" Поиск по форуму не дал результатов, в основном обсуждаются вопросы создания обратного отсчета времени и то только в днях, часах, минутах и секундах. Заранее огромное спасибо! С уважением, Согдиана. |
Код:
// Создаём текстовое поле для отображения данных А вообще... ну, а что нельзя просто по-человечески за неделю-две напомнить? %) |
wvxvw, большое спасибо за отклик. Ваша доработка кода действительно работает, но я обнаружила в ней следующие ошибки:
1. Неправильно склоняются падежи в числах месяца: 11, 12, 13, 14. Пишет вместо 12 (13, 14) дней - 12 (13, 14) дня, а вместо 11 дней - 11 день. 2. Каждый месяц до 29 числа считает правильно, а выше 29-го числа прибавляет ещё один лишний день. Точнее выглядит это так: В компе стоит системное время с сегодняшней датой, т.е. 23 декабря 2007 года. В коде, с учетом того, что отсчет месяцев начинается с 0 (нуля), текущая дата имела бы вид: 2007, 11, 23 Теперь, когда я для проверки выставляю в коде дату 23 декабря 2005 года (2005, 11, 23), по идее код должен выдавать результат равный ровно 2-ум годам, т.е. "Со дня нашей свадьбы прошло 2 года", но в этой ситуации результат получается "2 года 16 дней". В итоге получается, что код суммирует лишние 16 дней. Просьба, проверьте, в чем ошибка? Мои собственные попытки подкорректировать код не увенчались успехом. Заранее благодарна, Согдиана. |
В строке 46 вероятно ошибка:
var day = Math.floor(hour/22); Я так думаю, что необходимо исправить на: var day = Math.floor(hour/24); Правильно или нет? |
Код:
// Создаём текстовое поле для отображения данных Но, поверте, у противоположного пола всегда есть определенные проблемы с временем, днем недели... месяцем... это все равно не поможетЪ |
wvxvw, Вы гений. Протестировала новый код вдоль и поперек, работает безукоризненно и правильно (не считая, что вместо 21 (31, 41, 51...) год - выдает 21 (31, 41, 51...) лет. Но это уже не столь важно, за 21 год многое в технологиях изменится.
Мир не без добрых людей, убеждаюсь в этом в лишний раз! Огромное спасибо! |
Незачто %)
|
Класс, упрощающий подбор окончания.
Можно использовать не только для даты, но для других слов описывая массив вне класса по принципу ARRAY_NAME и используя метод getNameIndex Код:
class ru.inils.date.DateName {Код:
import ru.inils.date.DateName; |
Мож тогда уже с классом iNils'a?
|
А как это реализовать? Помогите пожалуйста собрать код. Я пытаюсь, но получается куча ошибок.
P.S. Я нечаянно удалила предыдущее своё сообщение. |
С учетом моего класса
Код:
import ru.inils.date.DateName; |
Код:
import ru.inils.date.DateName;Ну, код iNilsa пожалуй по-оптимальнее будет =) Ток не рассматривается ситуация, если дата свадьбы намечена на будущее %) |
Большое спасибо! Буду сегодня тестить, о результатах отпишусь.
|
iNils, wvxvw, доброго времени суток! Извините за назойливость, снова нужна ваша помощь.
Файл проекта у меня называется project.swf, соответственно я создала класс в файле project.as и поместила его в: [папка с проектом]/ru/inils/date . Но теперь в просмотре получается следующая картина: 1 undifined 8 undifined 15 undifined (соответственно по дате должно было быть 1 год 8 месяцев 15 дней. Результаты счетчика работают правильно, но наименование лет, месяцев и дней почему-то код из класса не тянет. Что я не так сделала? Подскажите пожалуйста. P/S В кодах ничего не меняла, вставила их как есть из последней редакции wvxvw'а. В файл project.as поместила код iNils'а с поста #8. |
Ок, предположим, флешка, над которой работаете лежит по такому адресу:
D:\myProjects\flashProjects\project.swf тогда класс iNilsa нужно положить в: D:\myProjects\flashProjects\ru\inils\date\DateName.as |
Спасибо, теперь всё заработало. Поначалу я так и сделала, поместив класс iNils'a в файл DateName.as, но оказывается, что необходимо было после DateName дать пробел, то есть назвать файл DateName .as.
Большое всем спасибо, тему можно закрывать. |
Это форум добавил пробел, на самом деле его нет.
|
| Часовой пояс GMT +4, время: 03:00. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.