Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
  • Страница 1 из 1
  • 1
Модератор форума: Peter, DEMBEL, YURIY  
Работа с форматами и значениями времени
ВадимДата: Вт, 02 Апреля 2013, 11:36 | Сообщение # 1
Генератор идей
Можно ли из одного значения времени в формате HH:MM:SS (например, полученного из глобальной переменной [time24]) отнять другое значение времени в том же формате и получить результат в том же формате HH:MM:SS? Без перевода в секунды и без парсинга содержимого каждого значения времени - это долго, если значений очень много...

Пример (представим, что вместо значений времени переменные):
17:50:00 - 09:25:10 = 08:25:50

Ну и сложение значений времени также интересует...

Может плагин какой есть, учитывающий также переход через 00:00:00... ?


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
СообщениеМожно ли из одного значения времени в формате HH:MM:SS (например, полученного из глобальной переменной [time24]) отнять другое значение времени в том же формате и получить результат в том же формате HH:MM:SS? Без перевода в секунды и без парсинга содержимого каждого значения времени - это долго, если значений очень много...

Пример (представим, что вместо значений времени переменные):
17:50:00 - 09:25:10 = 08:25:50

Ну и сложение значений времени также интересует...

Может плагин какой есть, учитывающий также переход через 00:00:00... ?

Автор - Вадим
Дата добавления - 02 Апреля 2013 в 11:36
DEMBELДата: Вт, 02 Апреля 2013, 11:55 | Сообщение # 2
Наш дизайнер
Если ты собрался отнимать или прибавлять время, и результат количеством будет превышать пределы текущих суток, то вероятно нужно учитывать еще и дату в днях, а не только время. Иначе какой в этом будет смысл получить время в часах, если к примеру от 10:00:00 отнять 23:00:00, получится 11:00:00. Что это тебе скажет? То ли это 11ч вчерашнего дня, то ли время на час вперед прибавили...

Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
СообщениеЕсли ты собрался отнимать или прибавлять время, и результат количеством будет превышать пределы текущих суток, то вероятно нужно учитывать еще и дату в днях, а не только время. Иначе какой в этом будет смысл получить время в часах, если к примеру от 10:00:00 отнять 23:00:00, получится 11:00:00. Что это тебе скажет? То ли это 11ч вчерашнего дня, то ли время на час вперед прибавили...

Автор - DEMBEL
Дата добавления - 02 Апреля 2013 в 11:55
ВадимДата: Вт, 02 Апреля 2013, 12:02 | Сообщение # 3
Генератор идей
Цитата (DEMBEL)
вероятно нужно учитывать еще и дату в днях, а не только время.
Да, согласен. Петр мне вчера как раз напомнил про команды DateToNum и NumToDate, их можно использовать для контроля числа дней.


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Цитата (DEMBEL)
вероятно нужно учитывать еще и дату в днях, а не только время.
Да, согласен. Петр мне вчера как раз напомнил про команды DateToNum и NumToDate, их можно использовать для контроля числа дней.

Автор - Вадим
Дата добавления - 02 Апреля 2013 в 12:02
DEMBELДата: Вт, 02 Апреля 2013, 12:12 | Сообщение # 4
Наш дизайнер
ну в js/vbs есть уже готовые команды для работы с датами и временем, ты определись в каком виде тебе это надо, что будет подаваться на вход, что ожидать на выходе...
работает также, т.е. вычисляется кол-во миллисекунд для каждой даты от фиксированной даты в прошлом, мсек складываются или вычитаются, результат переводится в новую дату+время


Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениену в js/vbs есть уже готовые команды для работы с датами и временем, ты определись в каком виде тебе это надо, что будет подаваться на вход, что ожидать на выходе...
работает также, т.е. вычисляется кол-во миллисекунд для каждой даты от фиксированной даты в прошлом, мсек складываются или вычитаются, результат переводится в новую дату+время

Автор - DEMBEL
Дата добавления - 02 Апреля 2013 в 12:12
saДата: Вт, 02 Апреля 2013, 12:20 | Сообщение # 5
Прохожий
Обе переменные скриптом приводятся в полный вид даты и времени, затем берется общее начало отсчета, типа 01.01.1970 00:00:00, далее для переменных вычисляется количество секунд с начала отсчета, и результат преобразовывается из секунд в часы минуты секунды.

Зачем отказываться от этой азбуки?
 
СообщениеОбе переменные скриптом приводятся в полный вид даты и времени, затем берется общее начало отсчета, типа 01.01.1970 00:00:00, далее для переменных вычисляется количество секунд с начала отсчета, и результат преобразовывается из секунд в часы минуты секунды.

Зачем отказываться от этой азбуки?

Автор - sa
Дата добавления - 02 Апреля 2013 в 12:20
ВадимДата: Вт, 02 Апреля 2013, 12:27 | Сообщение # 6
Генератор идей
Цитата (DEMBEL)
вычисляется кол-во миллисекунд для каждой даты
А, понятно! Я почему-то дни и время в понимании не соединил. Пока что я иначе проблему собрался решить (вычисляю разность значений времени сразу после получения второго значения, это снимает трудности с днями, надо только переход на другие сутки проконтролировать простым условием), однако вопрос об арифметических операциях над значениями времени для меня остался открытым, поэтому создал тему. Раз есть готовые функции, то наверное можно будет при необходимости прикрутить какую-нибудь и к проекту NeoBook!

Добавлено (02 Апреля 2013, 12:27)
---------------------------------------------

Цитата (sa)
Зачем отказываться от этой азбуки?
Я только узнал об этом, отказываться еще рано! :)


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Цитата (DEMBEL)
вычисляется кол-во миллисекунд для каждой даты
А, понятно! Я почему-то дни и время в понимании не соединил. Пока что я иначе проблему собрался решить (вычисляю разность значений времени сразу после получения второго значения, это снимает трудности с днями, надо только переход на другие сутки проконтролировать простым условием), однако вопрос об арифметических операциях над значениями времени для меня остался открытым, поэтому создал тему. Раз есть готовые функции, то наверное можно будет при необходимости прикрутить какую-нибудь и к проекту NeoBook!

Добавлено (02 Апреля 2013, 12:27)
---------------------------------------------

Цитата (sa)
Зачем отказываться от этой азбуки?
Я только узнал об этом, отказываться еще рано! :)

Автор - Вадим
Дата добавления - 02 Апреля 2013 в 12:27
PeterДата: Вт, 02 Апреля 2013, 17:21 | Сообщение # 7
Админ NeoBook
Цитата (Вадим)
Я только узнал об этом, отказываться еще рано

Вот забавно!
А для кого я говорил о переводе времени в секунды, т.е привести все "к одному знаменателю" для расчета разницы?


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Цитата (Вадим)
Я только узнал об этом, отказываться еще рано

Вот забавно!
А для кого я говорил о переводе времени в секунды, т.е привести все "к одному знаменателю" для расчета разницы?

Автор - Peter
Дата добавления - 02 Апреля 2013 в 17:21
ВадимДата: Вт, 02 Апреля 2013, 17:27 | Сообщение # 8
Генератор идей
Цитата (Peter)
А для кого я говорил о переводе времени в секунды
Я просто не понял тебя сразу, что и дни нужно приводить к секундам. Не сталкивался никогда с такой задачей. Сработал стереотип восприятия в котором время - это часы, минуты, секунды, а дни - это дни :D .
Ну, теперь понимаю! Спасибо!


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Цитата (Peter)
А для кого я говорил о переводе времени в секунды
Я просто не понял тебя сразу, что и дни нужно приводить к секундам. Не сталкивался никогда с такой задачей. Сработал стереотип восприятия в котором время - это часы, минуты, секунды, а дни - это дни :D .
Ну, теперь понимаю! Спасибо!

Автор - Вадим
Дата добавления - 02 Апреля 2013 в 17:27
DEMBELДата: Вт, 02 Апреля 2013, 18:06 | Сообщение # 9
Наш дизайнер
кэп сообщает, что 1 день = 24 часа = 86400000 мс

Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Сообщениекэп сообщает, что 1 день = 24 часа = 86400000 мс

Автор - DEMBEL
Дата добавления - 02 Апреля 2013 в 18:06
mishemДата: Вт, 02 Апреля 2013, 19:41 | Сообщение # 10
Эксперт форума
вадим есть плагин, ищи. помочь найти не могу.

Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщениевадим есть плагин, ищи. помочь найти не могу.

Автор - mishem
Дата добавления - 02 Апреля 2013 в 19:41
ВадимДата: Вт, 09 Апреля 2013, 21:20 | Сообщение # 11
Генератор идей
Цитата (sa)
и результат преобразовывается из секунд в часы минуты секунды.
Вот это и не получается.
Цитата (mishem)
есть плагин, ищи
Посмотрел в своей базе, не нашел.

Что-то я конкретно туплю, кэп. :D
Перевести время (дни+часы+минуты+секунды) в секунды можно легко, а вот обратно...
Есть секунды, их нужно перевести в дни, часы, минуты и секунды средствами NeoBook.
Как это можно сделать?


Получается нужен такой алгоритм, чтобы в результате секунд всегда было не больше 59, минут не больше 59, часов не больше 23, дней сколько угодно можно (в моем случае).


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)

Сообщение отредактировано
Вадим - Вт, 09 Апреля 2013, 21:22
 
Сообщение
Цитата (sa)
и результат преобразовывается из секунд в часы минуты секунды.
Вот это и не получается.
Цитата (mishem)
есть плагин, ищи
Посмотрел в своей базе, не нашел.

Что-то я конкретно туплю, кэп. :D
Перевести время (дни+часы+минуты+секунды) в секунды можно легко, а вот обратно...
Есть секунды, их нужно перевести в дни, часы, минуты и секунды средствами NeoBook.
Как это можно сделать?


Получается нужен такой алгоритм, чтобы в результате секунд всегда было не больше 59, минут не больше 59, часов не больше 23, дней сколько угодно можно (в моем случае).

Автор - Вадим
Дата добавления - 09 Апреля 2013 в 21:20
mishemДата: Вт, 09 Апреля 2013, 21:23 | Сообщение # 12
Эксперт форума
Цитата (Вадим)
Посмотрел в своей базе, не нашел.

Я в больнице лежал, посмотреть не мог.
Нет, я перепутал с днями.

Не таймер делаешь?
Поищи тему по таймерам, там обсуждали это.
Не разберешься, стучи. :)
Вспоминать просто надо, а вспоминать, значит все заново. :D


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата (Вадим)
Посмотрел в своей базе, не нашел.

Я в больнице лежал, посмотреть не мог.
Нет, я перепутал с днями.

Не таймер делаешь?
Поищи тему по таймерам, там обсуждали это.
Не разберешься, стучи. :)
Вспоминать просто надо, а вспоминать, значит все заново. :D

Автор - mishem
Дата добавления - 09 Апреля 2013 в 21:23
ВадимДата: Вт, 09 Апреля 2013, 21:56 | Сообщение # 13
Генератор идей
Цитата (mishem)
Не таймер делаешь?

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

Нужно из одной переменной (число секунд) сделать четыре (дни, часы, минуты, секунды).

Темы с таймером я посмотрел, Пётр давал на них ссылки, но почему-то у меня код дает некорректный результат, либо я что-то не то делаю...
Вот тема была: _http://neobooker.ru/forum/22-1625-1
Вот пример Петра: _http://neobooker.ru/forum/22-1625-26966-16-1266032239

Алгоритм должен работать и на 55555555 секунд, и на 5 секунд.
Скажем, получили 5 секунд, их надо перевести в дни, часы, минуты, секунды.
Должно получиться: 0 дн. 0 час. 0 мин. 5 сек.
А если есть 105 секунд, то должно получиться:
0 дн. 0 час. 1 мин. 45 сек.

Так получил секунды:


DateToNum "[DateShort]" "Default" "[Today]"
Math "([Today]*72000)+([Hour]*3600)+([Minute]*60)+[Second]" "" "[TimeToSec]"


А как секунды обратно перевести, самым экономным способом?


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Цитата (mishem)
Не таймер делаешь?

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

Нужно из одной переменной (число секунд) сделать четыре (дни, часы, минуты, секунды).

Темы с таймером я посмотрел, Пётр давал на них ссылки, но почему-то у меня код дает некорректный результат, либо я что-то не то делаю...
Вот тема была: _http://neobooker.ru/forum/22-1625-1
Вот пример Петра: _http://neobooker.ru/forum/22-1625-26966-16-1266032239

Алгоритм должен работать и на 55555555 секунд, и на 5 секунд.
Скажем, получили 5 секунд, их надо перевести в дни, часы, минуты, секунды.
Должно получиться: 0 дн. 0 час. 0 мин. 5 сек.
А если есть 105 секунд, то должно получиться:
0 дн. 0 час. 1 мин. 45 сек.

Так получил секунды:


DateToNum "[DateShort]" "Default" "[Today]"
Math "([Today]*72000)+([Hour]*3600)+([Minute]*60)+[Second]" "" "[TimeToSec]"


А как секунды обратно перевести, самым экономным способом?

Автор - Вадим
Дата добавления - 09 Апреля 2013 в 21:56
mishemДата: Вт, 09 Апреля 2013, 22:17 | Сообщение # 14
Эксперт форума
Блин, говорю ж есть плагин. :D
dec_Plus
Раздел дата и время.

Добавлено (09 Апреля 2013, 22:17)
---------------------------------------------

Цитата (Вадим)
А как секунды обратно перевести, самым экономным способом?

Наверно где плюс, - поставить?
:)


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
СообщениеБлин, говорю ж есть плагин. :D
dec_Plus
Раздел дата и время.

Добавлено (09 Апреля 2013, 22:17)
---------------------------------------------

Цитата (Вадим)
А как секунды обратно перевести, самым экономным способом?

Наверно где плюс, - поставить?
:)

Автор - mishem
Дата добавления - 09 Апреля 2013 в 22:17
ВадимДата: Вт, 09 Апреля 2013, 22:24 | Сообщение # 15
Генератор идей
Цитата (mishem)
dec_Plus

Судя по описанию команд ни одна из них не переводит секунды в дни\часы\минуты\секунды.

Добавлено (09 Апреля 2013, 22:19)
---------------------------------------------

Добавлено (09 Апреля 2013, 22:24)
---------------------------------------------
При делении возникают проблемы. 79секунд/60=1.316666667
но 79 секунд это не 1 минута и 32 секунды, а 1 минута и 19 секунд...


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Цитата (mishem)
dec_Plus

Судя по описанию команд ни одна из них не переводит секунды в дни\часы\минуты\секунды.

Добавлено (09 Апреля 2013, 22:19)
---------------------------------------------

Добавлено (09 Апреля 2013, 22:24)
---------------------------------------------
При делении возникают проблемы. 79секунд/60=1.316666667
но 79 секунд это не 1 минута и 32 секунды, а 1 минута и 19 секунд...


Автор - Вадим
Дата добавления - 09 Апреля 2013 в 22:24
mishemДата: Вт, 09 Апреля 2013, 22:45 | Сообщение # 16
Эксперт форума
Цитата (Вадим)
Скажем, получили 5 секунд, их надо перевести в дни, часы, минуты, секунды.

Я вот тебя не пойму если честно.
минута=60 сек
час=3 600 сек
сутки=86 400 сек
год= 31536000 сек если не високосный.

Как высчитывать дни в високосном году читай здесь.

Если 5 сек меньше 60 то наверно все остальное будет ноль?
Если 55 555 555 меньше 31 536 000 то при делении 55 мил на 31 мы получим 1 год?
ну и т.д.

Здесь нужно определится с високосным годом, был или небыл в этом промежутке. А все остальное мне кажется не составляет никакого труда.

Добавлено (09 Апреля 2013, 22:27)
---------------------------------------------

Цитата (Вадим)
но 79 секунд это не 1 минута и 32 секунды, а 1 минута и 19 секунд...

все с тобой ясно.
:)
79 секунд, это 1 минута и 79-60=19 секунд.

Добавлено (09 Апреля 2013, 22:29)
---------------------------------------------
154 секунды это 154/60=2 154-2*60=34
Я ж тебе говорю, минус поставь. :D

Добавлено (09 Апреля 2013, 22:45)
---------------------------------------------
Получаем сколько лет
55555555/31536000 = 1 год
Получаем сколько осталось секунд
55555555-31536000*1=24019555
Получаем сколько дней
24019555/86 400=278 дней
Получаем сколько осталось секунд
24019555-278*86 400=355
Получаем сколько часов
355/3600=0 часов
Получаем минуты
355/60=5 минут
Получаем оставшиеся секунды
355-5*60=55 сек.

1 год 278 дней 0 часов 55 сек.

Соответственно нужно ставить проверку на 0, если ноль до запятой, то не надо ничего умножать вычитать.


Не хочешь читать хелп?

Если хелп и форум не помогли, тогда все ответы здесь



Если вы думаете, что сможете — вы сможете, если думаете, что нет — вы правы.
 
Сообщение
Цитата (Вадим)
Скажем, получили 5 секунд, их надо перевести в дни, часы, минуты, секунды.

Я вот тебя не пойму если честно.
минута=60 сек
час=3 600 сек
сутки=86 400 сек
год= 31536000 сек если не високосный.

Как высчитывать дни в високосном году читай здесь.

Если 5 сек меньше 60 то наверно все остальное будет ноль?
Если 55 555 555 меньше 31 536 000 то при делении 55 мил на 31 мы получим 1 год?
ну и т.д.

Здесь нужно определится с високосным годом, был или небыл в этом промежутке. А все остальное мне кажется не составляет никакого труда.

Добавлено (09 Апреля 2013, 22:27)
---------------------------------------------

Цитата (Вадим)
но 79 секунд это не 1 минута и 32 секунды, а 1 минута и 19 секунд...

все с тобой ясно.
:)
79 секунд, это 1 минута и 79-60=19 секунд.

Добавлено (09 Апреля 2013, 22:29)
---------------------------------------------
154 секунды это 154/60=2 154-2*60=34
Я ж тебе говорю, минус поставь. :D

Добавлено (09 Апреля 2013, 22:45)
---------------------------------------------
Получаем сколько лет
55555555/31536000 = 1 год
Получаем сколько осталось секунд
55555555-31536000*1=24019555
Получаем сколько дней
24019555/86 400=278 дней
Получаем сколько осталось секунд
24019555-278*86 400=355
Получаем сколько часов
355/3600=0 часов
Получаем минуты
355/60=5 минут
Получаем оставшиеся секунды
355-5*60=55 сек.

1 год 278 дней 0 часов 55 сек.

Соответственно нужно ставить проверку на 0, если ноль до запятой, то не надо ничего умножать вычитать.


Автор - mishem
Дата добавления - 09 Апреля 2013 в 22:45
ВадимДата: Вт, 09 Апреля 2013, 22:51 | Сообщение # 17
Генератор идей


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение

Автор - Вадим
Дата добавления - 09 Апреля 2013 в 22:51
wikslДата: Сб, 13 Апреля 2013, 23:00 | Сообщение # 18
Участник
Можно использовать функции вычисления целой части и остатка от деления

Вик
 
СообщениеМожно использовать функции вычисления целой части и остатка от деления

Автор - wiksl
Дата добавления - 13 Апреля 2013 в 23:00
  • Страница 1 из 1
  • 1
Поиск: