Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сложение времени с помощью JS
 
 автор: absorber   (12.09.2007 в 23:52)   письмо автору
 
 

Время доброе!
Возникла проблема. Есть время X часов N минут] как это время сложить 4 раза.
Например: 2ч11м по 4раза равно 8ч 44м
Или : 1ч 30м по 4 раза это 6ч
тоесть просто умножать нельзя.
Как сделать это в коде c помощью JavaScript a? если кто знает какое решение проблемы сообщите пожалуйста.

   
 
 автор: valenok   (13.09.2007 в 16:38)   письмо автору
 
   для: absorber   (12.09.2007 в 23:52)
 

А если время 23:31
какой результат будет?

   
 
 автор: absorber   (13.09.2007 в 16:57)   письмо автору
 
   для: valenok   (13.09.2007 в 16:38)
 

4 раза 23:31 будет
3дня 22часа 04минут
Как это сделать чтобы считала программа я не пойму =) тк там 60минут а не 100

   
 
 автор: valenok   (13.09.2007 в 17:39)   письмо автору
 
   для: absorber   (13.09.2007 в 16:57)
 

тогда запросто.
Если проблема с этим, то вот тебе идея, а пиши сам

23 часа, 37 минут = 60*23 + 37 = 1150 минут.
время = 1150 * 4 = 4600
дни = округлить в низ(время / (60*24)) = 3
время = время - (дни*60*24)ж
часы = округлить_в_низ(время/60)
время = время - часы * 60
минуты = время

Осталось только русские слова заменить на перемнные

   
 
 автор: absorber   (13.09.2007 в 21:26)   письмо автору
 
   для: valenok   (13.09.2007 в 17:39)
 

спасибо, но, что то не вяжется =)
23 часа, 37 минут = 60*23 + 37 = 1150 минут.
по моим расчетам:
23 часа, 37 минут = 60 умножить 23 плюс 37 = 1 417 минут.
И дальше уже расчет не верный...

И еще

округлить_в_низ(время/60)

Я использовал функцию parseInt(); подойдет.

   
 
 автор: valenok   (14.09.2007 в 11:39)   письмо автору
 
   для: absorber   (13.09.2007 в 21:26)
 

извините, калькулятор поломался

   
 
 автор: CNT   (13.09.2007 в 22:59)   письмо автору
 
   для: absorber   (12.09.2007 в 23:52)
 

Я вот одного не понимаю - причём тут Javascript-то?

Вам нужен алгоритм вычисления.
Который потом можно реализовать на любом языке программирования.

Работа со временем (минуты, часы, сутки) - это, по-моему, из курса четвертого класса начальной школы.
Неужто мы здесь собрались, чтобы учить кого-то тому, что он успешно проспал в школе?

1. Какой-то период времени можно отобразить в виде: Д-Ч-М-С, где
Д - дни; Ч - часы; М - минуты; С - секунды

2. Перевести всё это только в секунды надо так:
(Д * 24 * 60 * 60) + (Ч * 60 * 60) + (М * 60) + С = TIME (в секундах)

(вот тут и умножайте TIME хоть на 4, хоть делите на 5 и получайте TIMENEW)

3. Обратный перевод (из секунд в формат Д-Ч-М-С) делается так:
Д = меньшее целое от (TIMENEW : 60 : 60 : 24)
Ч = меньшее целое от ((TIMENEW : 60 : 60) - (Д * 24))
М = меньшее целое от ((TIMENEW : 60) - (Д * 24 * 60) - (Ч * 60))
С = TIMENEW - (Д * 24 * 60 * 60) - (Ч * 60 * 60) - (М * 60)

4. Для Javascript'a меньшее целое определяется при помощи функции Math.floor ()
Если сообразите - "зачем?" - то могу посоветовать ещё и оператор % - он даёт остаток от деления

Двоечнику что-то ещё непонятно?

   
 
 автор: absorber   (16.09.2007 в 23:43)   письмо автору
 
   для: CNT   (13.09.2007 в 22:59)
 

Спасибо Огромное этот самый алгоритм я и искал =)
Благодаря вам CNT написать программу не составило большого труда.
Правда где применить оператор % я не сообразил =) ну вроде бы и так все работает.
Еще раз спасибо.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования