Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Преобразовать секунды в часы с минутами

Преобразовать секунды в часы с минутами
Я
   IT_PROGRAMMIST
 
23.01.13 - 12:33
Добрый день. пл.8.2.16.368.
Такая задача: Есть документ, в котором пользователь вводит время работы станка(т.е Время начала и время окончания(с типом Дата, состав даты время)). Документ ложит это время в секундах в добавленный под документ регистр. Расчет времени в секундах выполняю так:
   
&НаКлиенте
Функция ПолучитьРазницуВоВремениВСекундах(ВремяНачалаРаботы,ВремяОкончанияРаботы)
    
    РазностьВСекундах = ВремяОкончанияРаботы - ВремяНачалаРаботы;
    Если РазностьВСекундах >= 0 Тогда
        Возврат РазностьВСекундах;
    ИначеЕсли РазностьВСекундах < 0 Тогда
        Время3 = ВремяОкончанияРаботы + 86400;
        пРазностьВСекундах = Время3 - ВремяНачалаРаботы;
        Возврат пРазностьВСекундах;
    КонецЕсли;   
    
КонецФункции

Делаю отчет, который будет показывать картину сколько по времени работал(или простаивал) станок. В отчете преобразовываю секунды во время с часами минутами. Преобразовываю так:

Выражение представления для вычисляемого поля в отчете:
Функция ПредставлениеВремени(Время) Экспорт

  Предс = Дата(1,1,1)+Время;
  Возврат Формат(Предс,"ДФ=HH:mm");

КонецФункции

Но есть проблема, если общее время превышает в секундах 24 часа, то система выводить время заново:
т.е     85 800 сек = 23 час 50 минут
        36 000 сек = 10 час 00 минут
Итого   121 800 сек = 09 час 50 минут, а должно 33 часа 50 минут.

Подскажите как выкрутиться из сутуации??? Понимаю, что дело в  Дата(1,1,1).не знаю как сделать....
 
 
   GLazNik
 
1 - 23.01.13 - 12:35
И?
   IT_PROGRAMMIST
 
2 - 23.01.13 - 12:35
(1) ?
   GLazNik
 
3 - 23.01.13 - 12:35
Проблема не в Дата(1,1,1), а в Формат(Предс,"ДФ=HH:mm")
   Defender aka LINN
 
4 - 23.01.13 - 12:38
(0) Я так понимаю, батюшка предаст анафеме, если при времени больше 86400, автор будет использовать другую форматную строку... Да, беда прямо...
   IT_PROGRAMMIST
 
5 - 23.01.13 - 12:39
(3) не помогло.
(4) да в этом проблема
   IT_PROGRAMMIST
 
6 - 23.01.13 - 12:56
блин, как же выкрутиться?
   IT_PROGRAMMIST
 
7 - 23.01.13 - 13:00
думал уже может хранить информацию не в секундах,а в числах. Но тогда будет ситуация 1,30(предположим, что это 1 час 30)+2,40( 2 часа 40 минут) = 3,70(3 часа 70 минут)(((((
   cw014
 
8 - 23.01.13 - 13:02
Отбрось предрассудки в виде формата, считай математикой, будь мужиком, блеать...
   IT_PROGRAMMIST
 
9 - 23.01.13 - 13:03
(8) подскажи как?
   DrShad
 
10 - 23.01.13 - 13:03
(7) секунды раздели на 60 и получишь минуты
минуты раздели на 60 и получишь часы
часы на 24 и получишь сутки
сутки на 7 и получишь недели
....
 
 Рекламное место пустует
   DrShad
 
11 - 23.01.13 - 13:04
+(10) учу математике, дорого!
   cw014
 
12 - 23.01.13 - 13:07
(10),(11) +100500
(9) Учи матчасть!!!
   DrShad
 
13 - 23.01.13 - 13:08
(12) у меня сын во втором классе уже знает, правда без калькулятора еще не умеет делить
   IT_PROGRAMMIST
 
14 - 23.01.13 - 13:09
сейчас попробую.
Т.е 121 800 сек это
121 800/60 = 2030 минут
2030/60 = 33,83

а как получить 33 часа 50 минут
   Мыш
 
15 - 23.01.13 - 13:09
Часы = Цел(ВсегоСекунды/3600);
Минуты = Цел((ВсегоСекунды-Часы*3600)/60);
Секунды = ВсегоСекунды-Часы*3600-Минуты*60;
   Nzn
 
16 - 23.01.13 - 13:10
33,83-Цел(33,83)/100*60
   cw014
 
17 - 23.01.13 - 13:11
Друзья, а долго вы ит_программиста будете вычислению времени обучать? Если да, то будут ли ему домашние задания? :)
   DrShad
 
18 - 23.01.13 - 13:12
мдя... как все запущенно...
   Мыш
 
19 - 23.01.13 - 13:13
Секунды = ВсегоСекунды%3600;
Минуты = ((ВсегоСекунды-Секунды)/60)%60;
Часы = (ВсегоСекунды-Секунды-Минуты*60)/3600;
   drcrasher
 
20 - 23.01.13 - 13:14
(17) поржал от души ))))
   cw014
 
21 - 23.01.13 - 13:15
(20) По моему пора бежать за попкорном
   Мыш
 
22 - 23.01.13 - 13:15
(0) С честью неси гордое звание программиста! Не позорь его! Прочти уже что-нибудь по алгоритмам! )
   IT_PROGRAMMIST
 
23 - 23.01.13 - 13:15
(15),(10)спасибо за помощь. Если задал глупый вопрос, то сор. Я думаю каждый из здесь присутствующих программирует по ночам, а днем.......
   Nzn
 
24 - 23.01.13 - 13:15
(17) Ну ... он же программист, а не математик)))
   DrShad
 
25 - 23.01.13 - 13:16
(23) плохо ты о нас думаешь
по ночам мы спим, а днем на мисте сидим
   1Сергей
 
26 - 23.01.13 - 13:16
Минут = ВсегоСекунд % 60;
Часов = Цел(ВсегоСекунд / 60);
   DrShad
 
27 - 23.01.13 - 13:17
(26) облажался
   Мыш
 
28 - 23.01.13 - 13:17
(23) Что скрывается за столь многозначительным многоточием? Открой страшную Правду! )
   IT_PROGRAMMIST
 
29 - 23.01.13 - 13:19
(28) спать хочется)))
   DrShad
 
30 - 23.01.13 - 13:19
(29) спать нужно ночью
   cw014
 
31 - 23.01.13 - 13:19
(28) Есть вампиры, они спят днем и пьют кровь по ночам. А есть программиры - они спят днем и программируют 1С по ночам
   1Сергей
 
32 - 23.01.13 - 13:20
(27) чего это?
   1Сергей
 
33 - 23.01.13 - 13:20
(32)+ а, да. он секунды и минуты получит
 
 
   AndyD
 
34 - 23.01.13 - 13:21
охренеть программисты пошли. уж лучше бы поваром пошел, или водителем каким-нибудь
   AndyD
 
35 - 23.01.13 - 13:22
зато интересы: 1с,ajax,php,C++,delphi
   IT_PROGRAMMIST
 
36 - 23.01.13 - 13:23
(35) поэтому и сплю днем, потому что такие интерсы)
   Мыш
 
37 - 23.01.13 - 13:23
(34) Нормальный программист. Хотя бы не поленился вопрос внятно сформулировать )
   AndyD
 
38 - 23.01.13 - 13:29
(37) у нормального программиста в голову не придет вопросы задавать как в (14). программисту даже думать не надо, чтобы задачу такую решить, ответ должен прийти в голову так же как 2+2=4
   IT_PROGRAMMIST
 
39 - 23.01.13 - 13:30
(38)вот он и пришел)
   DrShad
 
40 - 23.01.13 - 13:31
(38) открою тебе великую тайну - 2+2 не всегда равно 4, иногда оно равно 3.9999999
   Мыш
 
41 - 23.01.13 - 13:33
(38) Да вы, батенька, максималист! )
   Vladal
 
42 - 23.01.13 - 14:39
ВремяВыполнения = ТекущаяДата() - НачалоПроцесса;
Часов = Цел(ВремяВыполнения/3600);
Минут = Цел((ВремяВыполнения-Часов*3600)/60);
Секунд = ВремяВыполнения - Часов*3600 - Минут*60;
СтрокаВремениВыполнения = "" + Часов + ":" + ?(Минут = 0, "00", Формат(Минут, "ЧЦ=2; ЧДЦ=0; ЧВН=")) + ":" + ?(Секунд = 0, "00", Формат(Секунд, "ЧЦ=2; ЧВН="));


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует