Guest
Новичок
|
Здраствуйте! С математикой у меня еще с детства не очень хорошо сложилось, но сейчас столкнулся с проблемой отсчета времени от заданой даты и вот уже посинею, но не получается вычисить нужные числа. По профессии веб дизайнер, работаю над интеренет банером в котором будет идти отсчет времени от заданой даты, например: отдельно будет указано сколько прошло лет, отдельно месяцев, дней, часов, минут и секунд. Все эти вычисления будут проводится програмкой и отображать нужные цыфры обновляя их в реальном времени. Програма высчитывает отношение в секундах от текущей даты, до указаной. Осталось в нее ввести формулы для подсчета отдельно часов, минут, секунд, дней, годов и месяцев. вот, посмотрите как у меня оно выглядит: Припустим указаное время: 1960 г 10 месяц 11 число 13 часов 0 минут Начинаю выводить формулы: всего милисекунд = текущее время - указаное время; //милисекунды из-за того, что програма изначально считает в них. секунды = всего секунд/1000; // для примера получается 673856895 секунд минуты = секунды/60; часы = минуты/60; дни = rчасы/24; годы = дни/365.25; месяцы2 = (дни - годы*365.25)/30; // тут мы увидим месяцы в нормальном виде от 1 до 12 дни2 = дни - годы*365.25 - месяцы2*30; // дни в нормальном календарном виде. собственно не могу вычислить из числа "секунды" отдельно: часы2 = ? //тоесть эти часы2 должны представлять "n" часов от 0 до 24 (как на обычных часах) минуты2 = ? // здесь, минуты как на обычных часах, - до 60 секунды2 = ? // и с секундами тоже так же. Имею в виду, что мне нужно разделить секунды что получаются при подсчете (например те же 673856895) на отдельные годы, месяцы, дни, часы, минуты и секунды, представленые в понятной временной форме. Может я написал довольно сложно, но если все же кто-то захочет мне помочь с решением даной задачи за "спасибо" буду очень признателен и обьясню задачу более подробно. Спасибо за внимание. С уважением Андрей.
|
Всего сообщений: Нет | Присоединился: Never | Отправлено: 19 апр. 2008 22:58 | IP
|
|
Roman Osipov
Долгожитель
|
Нужно ли учитывать "не идеальность времени", в том смысле, что в сутках не в точности 24 часа, а годе 365 (366) дней?
|
Всего сообщений: 2356 | Присоединился: май 2007 | Отправлено: 19 апр. 2008 23:11 | IP
|
|
bekas
Долгожитель
|
Какой дате соответствует 0 миллисекунд? 00:00:00.000 1 января 1970 года? На каком языке надо написать эту функцию? Вы ошибаетесь - на обычных часах время идет от от 00:00:00 до 23:59:59, а не до 24 часов (это же касается минут и секунд - они меняются от 0 до 59, а не до 60). Кроме того, високосный год не обязательно каждый четвертый. Или вы считаете по среднему - независимо от того, с какого года началась дата?
|
Всего сообщений: 379 | Присоединился: январь 2006 | Отправлено: 19 апр. 2008 23:27 | IP
|
|
Guest
Новичок
|
Еще раз здраствуйте. Спасибо за ответ. Да, отсчет идет от 1970 года. Пишется это дело на Action Script. В правильности написании даных "формул" я не уверен, поэтому и обратился к Вам за помощью. Скажем так, у меня есть два варианта реализации даной задачи, один суто програмно используя функции програмы, но на практике было очень много ошибок (так званых багов) и нужно много вносить поправок, поэтому пока что от него решил отказатся. Второй же способ, - математический. Значит есть начальная дата и текущая дата, разница между ними подсчитывается програмно, без любых действий пользователя и выдается на экране в виде секунд. Из этих секунд я хотел уже извлечь по отдельности год, месяц, и т.д в плоть до секунд. Как видите "годы", "месяцы2" и "дни2" мне удалось извлечь, но дальше силенок не хватает.
|
Всего сообщений: Нет | Присоединился: Never | Отправлено: 20 апр. 2008 1:24 | IP
|
|
bekas
Долгожитель
|
Мне кажется в таком виде постановка задачи некорректна - вы можете однозначно печатать количество дней, часов, минут, секунд и миллисекунд - но никак не лет и месяцев. Последние две характеристики зависят не только от расстояния между двуимя датами, но и от младшей даты. Не зная, какой месяц был перед этим, вы не можете сказать - 31 день: это один месяц или один месяц и еще один день. Поэтому советую ограничиться самой старшей характеристикой печати - днями, а не месяцами и годами.
|
Всего сообщений: 379 | Присоединился: январь 2006 | Отправлено: 20 апр. 2008 16:52 | IP
|
|
Guest
Новичок
|
Доброго вечера! К сожалению задача поставлена в расчете от годов до секунд. Спасибо за уделенное время, но данный вопрос решил програмированием без особой математики, надеюсь ошибок програмка не выдаст. Всего хорошего Вам. С уважением, Андрей.
|
Всего сообщений: Нет | Присоединился: Never | Отправлено: 21 апр. 2008 21:07 | IP
|
|
|