Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2014, 16:30   #1
KApSuL
Форумчанин
 
Регистрация: 04.09.2010
Сообщений: 119
По умолчанию Работа с промежутками времени

Ребят нужно решить задачу, помогите пожалуйста, никак не придумаю...
Есть робот который работает определённое время, например
начало 18:00
конец 23:00
Есть 3 коэффициента по которым он жрёт электричество
т1 - экономный 0,35 с 1:00 до 6:00
т2 - обычный с 7:00 до 19:00
т3 - максимально экономный с 19:00 до 24:00
подскажите пожалуйста формулу, чтобы рассчитать сколько времени он работает по каждому из коэффициентов
например если
начало работы в 18:00
конец работы 23:00
то в результате получим
т2 = 1 час работы
т3 = 4 часа работы
Вот накидал примерную табличку
Вложения
Тип файла: zip пример.zip (6.7 Кб, 8 просмотров)
KApSuL вне форума Ответить с цитированием
Старый 26.08.2014, 18:01   #2
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

UDF
Код:
Public Function Интервалы_времени(Начало, Окончание, Режим)
    Dim T(1 To 3)
    Const P1 = 6 / 24
    Const P2 = 19 / 24
    If P1 > Начало Then T(1) = P1 - Начало
    If P2 < Окончание Then T(3) = Окончание - P2
    T(2) = Окончание - Начало - T(1) - T(3)
    Интервалы_времени = Format(T(Режим), "hh:nn")
End Function
вызов

Код:
=Интервалы_времени(B10;C10;1)
1 до 6
2 с 6 до 19
3 с 19 до 24
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 26.08.2014, 18:25   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

режимов действительно 3, но интервалов времени для разных рехимов 6
формула:
Код:
=((RC[-5]<6/24)*(МИН(RC[-4];6/24)-RC[-5])*0.35+(RC[-5]<7/24)*(МИН(RC[-4];8/24)-МАКС(7/24;RC[-5]))*1.02+(RC[-5]<10/24)*(МИН(RC[-4];10/24)-МАКС(7/24;RC[-5]))*1.68+(RC[-5]<19/24)*(МИН(RC[-4];19/24)-МАКС(10/24;RC[-5]))*1.02+(RC[-5]<22/24)*(МИН(RC[-4];22/24)-МАКС(19/24;RC[-5]))*1.68+(RC[-4]>=22/24)*(RC[-4]-МАКС(RC[-5];22/24))*1.02)*24
есть во вложении
Вложения
Тип файла: rar Пример.rar (8.1 Кб, 16 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.08.2014, 19:08   #4
alex77755
Форумчанин
 
Аватар для alex77755
 
Регистрация: 14.02.2009
Сообщений: 753
По умолчанию

У меня, вроде, вполне хватает и трёх.
Да и вопрос звучал не сколько к оплате, а
Цитата:
подскажите пожалуйста формулу, чтобы рассчитать сколько времени он работает по каждому из коэффициентов
Вложения
Тип файла: rar интервалы времени.rar (8.7 Кб, 9 просмотров)
помогу решить контрольные VB6, VBA (недорого)
Alex77755@mail.ru
alex77755 вне форума Ответить с цитированием
Старый 29.08.2014, 12:56   #5
KApSuL
Форумчанин
 
Регистрация: 04.09.2010
Сообщений: 119
По умолчанию

спасибо большое, постараюсь разобраться
столкнулся с проблемой когда робот запускается например вечером, а утром выключается.
как можно дату привязать к этому делу?
брал формулу IgorGO
Вложения
Тип файла: zip Пример.zip (10.1 Кб, 7 просмотров)

Последний раз редактировалось KApSuL; 29.08.2014 в 13:27.
KApSuL вне форума Ответить с цитированием
Старый 29.08.2014, 14:25   #6
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

разбейте на две строки с Ч1:М1 по 24:00 и с 00:00 по Ч2:М2
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 01.09.2014, 17:32   #7
KApSuL
Форумчанин
 
Регистрация: 04.09.2010
Сообщений: 119
По умолчанию

а можно на примере показать?что-то не доходит до меня...
KApSuL вне форума Ответить с цитированием
Старый 04.09.2014, 04:28   #8
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

см.вложение (и формулу я заменил)
время с 22:30 по 3:00 разбито с 22:30 по 24:00 и с 00:00 по 03:00
Вложения
Тип файла: rar Пример2.rar (8.1 Кб, 13 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 10.09.2014, 14:19   #9
KApSuL
Форумчанин
 
Регистрация: 04.09.2010
Сообщений: 119
По умолчанию

сделал как-то так
но есть проблема с временем с 00:00:00 до 00:59:59
почему то не корректно считает если остановка была в это время
может подскажете в чём причина?
Вложения
Тип файла: zip млини.zip (40.1 Кб, 7 просмотров)
KApSuL вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывод времени и выходного дня вместо времени Mikesh PHP 2 31.01.2014 00:22
WinAPI синхронизация времени с сайтом точного времени. Walker32 Помощь студентам 4 07.06.2012 18:59
вычисление разницы между временными промежутками lessless Microsoft Office Excel 2 02.06.2011 22:48
работа макроса во времени (вопрс новичка) zander Microsoft Office Excel 1 19.08.2010 17:23
Работа с String Grid - помогите написать "Табель рабочего времени" Deicider Помощь студентам 3 29.11.2006 20:59