Имя: Пароль:
1C
1С v8
Подсчет количества часов
0 LivingStar
 
08.11.13
11:57
Если у вас есть переменная, содержащая количество часов, и переменная содержащая количество минут. Как можно их правильно суммировать? Часы понятно как, просто суммирую их, а как быть с минутами? Например 24, 49, 37, 38, 5 минут. Как их суммировать переведя в часы что бы после суммировать с часами?
49 Wobland
 
08.11.13
12:30
(47) (48) от оно чо.. ну что ж, не дотянули до (50)
50 hhhh
 
08.11.13
12:34
(45) ну значит второй сломался. После того как отремонтировали, на новых запчастях, скорость тоже повыше.
51 Sabbath
 
08.11.13
12:36
(16) Я тебе уже написал в (10) переведи часы в минуты, сложи все и переводи обратно в часы (и минуты, если надо)
52 dmpl
 
08.11.13
12:38
(47) Структуру надо было возращать.
53 LivingStar
 
08.11.13
12:38
(43) А почему возвращается РезультатВсегоСекунд ?
54 Галахад
 
гуру
08.11.13
12:38
(43) Слишком сложная функция. Теперь ее еще нужно освоить. :-)
55 LivingStar
 
08.11.13
12:38
(51) так понимать бы формулу
56 Wobland
 
08.11.13
12:39
(53) это техническое любопытство или ты негодуешь?
57 dmpl
 
08.11.13
12:39
(50) Угу, сломался и вырабатывал топливо, после чего сел в пункте A. Средняя скорость у него 0 ;)
58 Ненавижу 1С
 
гуру
08.11.13
12:40
(55) тебе бы арифметику и простейшие алгоритмы сначала научиться понимать

остаток от деления, сортировка пузырьком
59 LivingStar
 
08.11.13
12:41
(56) это вопрос, не догнал пока что мне нелять конкретно, я на другой терминал постоянно митаюсь ~( проведение исправляю по партиям ~~~(
60 hhhh
 
08.11.13
12:41
(43) автор ведь хочет наоборот, перевести в часы всё

Функция СложитьВремя(Часы1 = 0, Минуты1 = 0, Часы2 = 0, Минуты2 = 0) Экспорт
    
    ВсегоЧасов1 = Часы1 + Минуты1 / 60;
    ВсегоЧасов2 = Часы2  + Минуты2 / 60;
    РезультатВсегоЧасов = ВсегоЧасов1 + ВсегоЧасов2;
    
    
    Возврат РезультатВсегоЧасов;
    
КонецФункции
61 LivingStar
 
08.11.13
12:41
спасибо этой ветке!!! уже вижу что смогу с её помощьяю и часы эти решить!!!
62 hhhh
 
08.11.13
12:42
(59) ты подключайся к другому терминалу в режиме удаленного рабочего стола, чтобы не бегать.
63 Ненавижу 1С
 
гуру
08.11.13
12:43
(62) он еще не освоил RDP
64 LivingStar
 
08.11.13
12:53
(62) так я так и делаю, верчу окна убунты постоянно, на виртуал бокс нет даже времени зайти
65 Ненавижу 1С
 
гуру
08.11.13
12:54
(64) ты типа мегакулхацкер? но ноль в программировании?
66 LivingStar
 
08.11.13
12:58
Подскачите пожалуйста КолЧасов, КолМинут, КолСекунд - это значения полученного в итоге пересчета по формуле значения?

ЧЧ:ММ:СС ?

Или это результат переведенный в часы, минуты или секунды?


Разность = Макс(Дата2, Дата1)
- Мин(Дата2, Дата1);

КолЧасов  = Цел(Разность / 3600);

КолМинут  = Цел((Разность % 3600) / 60);

КолСекунд = Разность % 60;
67 LivingStar
 
08.11.13
12:58
(65) утомился....
68 LivingStar
 
08.11.13
12:59
(65) часть из того что делаю не идет или идет но медленно с торможением.... отдых нужен здоровый
69 el7cartel
 
08.11.13
13:00
(67) отдохни...
70 Starhan
 
08.11.13
13:02
(58) в его случае, сначала надо научится лепить отмазы.
71 Wobland
 
08.11.13
13:04
кстати, да. человек учится врать раньше, чем читать и считать
72 Starhan
 
08.11.13
13:04
(0) хотя, даже я не могу придумать нормальный отмаз, что бы так объяснить, что я не понимаю что нужно сделать в (0),что бы никто не догадался что я тупой
73 Starhan
 
08.11.13
13:04
(72) к (70) :)
74 LivingStar
 
08.11.13
13:06
Часы допустим просчитаю целые, есть минуты!!! Что делать с ними пока не решил. Понятно что можно пересчитывать как угодно!!!
75 el7cartel
 
08.11.13
13:07
(70) в его случае вряд ли что поможет...
76 hhhh
 
08.11.13
13:07
(72) а зачем объяснять? Надо молчать. Молча записал пожелание юзара в блокнотик, сказал, подумаю, на днях отвечу.
77 Starhan
 
08.11.13
13:10
(0)>>Например 24, 49, 37, 38, 5 минут. Как их суммировать переведя в часы что бы после суммировать с часами?

Полученную сумму минут разделить на 60, получим значение в часах.


(74) порвало.

п.с. еще раз спрашиваю как тут подписываться на темы ТС?
78 Ненавижу 1С
 
гуру
08.11.13
13:11
(77) хз, но есть это http://www.forum.mista.ru/index.php?user_id=6293
79 Wobland
 
08.11.13
13:13
(77) Орефков вот узнаёт, когда его поминают всуе через какую-то гугломагию..
80 el7cartel
 
08.11.13
13:13
(78) интересно...за сегодняшний день это какая по счету тема у ТС?
81 Wobland
 
08.11.13
13:15
не оскудеет талантами земля сибирская
82 Никола_
Питерский
 
08.11.13
13:20
Блин это супер ТС ))))

В одной биржевой конторе давали задание типа на логику:
Сколько раз, стрелки часов(часовая и минутная) будут находиться под углом 90 градусов за 24 часа ?

Представляю ТС-а решающего такую задачу, хотя я сам не осилил с первого раза ))))
83 Ненавижу 1С
 
гуру
08.11.13
13:22
(82) часы идут?
84 Wobland
 
08.11.13
13:24
усложним вопрос. сколько существует на циферблате таких положений стрелок в состоянии1?
определим состояние1: если поменять стрелки местами, то часы всё равно будут показывать корректное время
85 Starhan
 
08.11.13
13:24
(82) 48 раз, по два раза за каждый час
86 1dvd
 
08.11.13
13:24
(83) сферические часы в вакууме
87 Ненавижу 1С
 
гуру
08.11.13
13:25
(85) а вот и нет, 44
(84) корректное, но не тоже самое?
88 orefkov
 
08.11.13
13:25
(79)
Это не гугломагия, это магический скрипт на моем сервере...
89 Никола_
Питерский
 
08.11.13
13:25
(85) чуток мимо ))) я то же так ответил с дуру
(83) Ну типа да )))
90 Wobland
 
08.11.13
13:26
(87) равенство времён не учитывать
91 Starhan
 
08.11.13
13:26
(87) что я упустил? )
92 hhhh
 
08.11.13
13:28
(68) не, я ведь вам говорил уже, вам реально надо взять в помощь какого-нибудь падавана. Вы будете носиться между терминалами, а он будет потихоньку эти задачки про часы и минуты прорешивать.
93 Ненавижу 1С
 
гуру
08.11.13
13:28
(90) не понял фразы, а вообще таких положений 11 (с учетом "полдня")
94 Ненавижу 1С
 
гуру
08.11.13
13:29
(91) минутная за сутки обгоняет часовую 22 раза, каждый раз до и после обгона образуются прямые углы, итого 44
95 Никола_
Питерский
 
08.11.13
13:30
(91) Да потому что они два раза за сутки встретятся на 12 часах.
96 1dvd
 
08.11.13
13:31
(94) а не 23?
97 1dvd
 
08.11.13
13:32
а... стоп. часы же 12 часов
98 el7cartel
 
08.11.13
13:32
(95) начало и конец
99 Серго62
 
08.11.13
13:32
(0) Для чего это вообще нужно-то ?
100 Ненавижу 1С
 
гуру
08.11.13
13:33
(96) нет, ибо можно разбить первую часть суток с 0 до 12 и вторую с 12 до 24, ход часов между ними не отличается
101 Серго62
 
08.11.13
13:33
(97) Бывают и 24 часа
102 Ненавижу 1С
 
гуру
08.11.13
13:34
(101) бывают, но наверное подразумевается "классика"
103 1dvd
 
08.11.13
13:34
(101) звращенцев в расчет не берем
104 Wobland
 
08.11.13
13:34
(93) перевожу фразу: "да пофих, то же самое или нет". с ответом 11 не согласен
105 dmpl
 
08.11.13
13:35
(97) Вообще, часы разные бывают. Я видел не с круглым циферблатом, а с сектором где-то 120 градусов.
106 dmpl
 
08.11.13
13:36
(102) А часы кварцевые или механические?
107 dmpl
 
08.11.13
13:37
(106) + если кварцевые - то у них шаг хода минутной стрелки 20, 30 или 60 секунд?
108 1dvd
 
08.11.13
13:37
(105) а я видел часы как бы жидкие, стекающие со стола
109 Wobland
 
08.11.13
13:38
(108) стекающие с как бы стола ;)
110 1dvd
 
08.11.13
13:39
(109) Ага. Сальвадор Дали аутор
111 Ненавижу 1С
 
гуру
08.11.13
13:40
(104) чёй-то?
112 Wobland
 
08.11.13
13:43
(111) насчитал больше. открыл классический циферблат и пересчитал по пальцам ;)
113 Ненавижу 1С
 
гуру
08.11.13
13:52
(112) походу я не ту задачу решал ))
114 Котокот
 
08.11.13
13:56
(0) Считать все в минутах, а при выводе в отчеты и формы переводить в часы и минуты
115 Ненавижу 1С
 
гуру
08.11.13
13:57
(112) ответ 143
116 alexiv79
 
08.11.13
13:58
(0) Чета мне кажется что уже стебешься. В любом слуае сначала переводишь в наименьшее - в твоем случае в минуты. Допустим 2 час 10 минут и 4 часа 30 минут. Их нужно сложить.
первое 130 минут, второе 270 минут - получаем 400 минут Получаем Цел(400/60) = 6 часов, потом 400 - Цел(400/60) = 40 минут. Итого 6 часов 40 минут
117 alexiv79
 
08.11.13
14:00
+(116)  Вот что тут непонятного? Когда разницу между датами ищем там все дата 2 - дата 1 = разница в секундах. И потом по похожей схеме. Цел(Разница/3600) = КолЧасов,Цел(Разница - Цел(Разница/3600))/60 - количество минут и секунды находим аналогично
118 Wobland
 
08.11.13
14:01
(115) мда.. чё-та я объясняю не так. или правда 143?..

состояние1 достигнуто в полдень, не достигнуто в час. в полдень - очевидно, почему. в час - потому что при минутной стрелке на единице часовая не может быть ровно на 12
119 alexiv79
 
08.11.13
14:04
(117) Вот насчет минут немного наипался - Цел(Разница - Цел(Разница/3600)*3600)/60 - кажись так минуты считаются-чета уже сам парюсь
120 User_Agronom
 
08.11.13
14:07
Уже 119 постов.
ИМХО
Сумма = Часы + Минуты/60;
Это правильное сложение переменной, содержащей часы с переменной содержащей минуты.
121 User_Agronom
 
08.11.13
14:09
(120) + Если результат нужен в часах, конечно
122 1dvd
 
08.11.13
14:12
(119) открой для себя (4)
123 Sorm
 
08.11.13
14:19
(0) Пятница, что ли...?
124 Ненавижу 1С
 
гуру
08.11.13
15:12
(118) каждому положению часов сопоставим точку в координатном квадрате: по одной оси - угол часовой стрелки от 0 положения, а по другой - минутной.
Синим обозначено множество положений правильных часов
https://docs.google.com/file/d/0B19WBINYOdkuOEwyb0tqN1FIX28
Теперь рассмотрим часы в котором стрелки поменяли местами, очевидно, что это множество в котором координаты поменялись местами, геометрически - это отражение относительно диагонали. Это красное множество. Так вот мы ищем их пересечение, таких точек ровно 12*12-1=143 (самая верхняя правая недостижима, это нижняя левая).
125 LehhaK
 
08.11.13
15:16
126 hhhh
 
08.11.13
15:39
(118) там фишка в том, что для часовой стрелки на 8 получается значение прямого угла в 9-00. То есть она зараза через час перепрыгивает. Поэтому 11 вариантов.
127 Ненавижу 1С
 
гуру
08.11.13
15:41
(126) вообще то обсуждение уже другой задачи в (84)
128 hhhh
 
08.11.13
15:45
и чего есть варианты? кроме 12-00?
129 hhhh
 
08.11.13
15:52
(128) а, понял, стрелки движутся, разность между некорректными значениями постоянно уменьшается, и в какой-то момент становится равной 0.
130 Wobland
 
08.11.13
16:49
(124) плин, с первого взгляда не подкопаешься. но где там положения, в которых стрелки совпадают? вроде как баг рисунка в том, что он не учитывает то, что одна стрелка движется быстрее другой

П.С. у нас время к восьми вечера пятницы, я немного занят, буду перечитывать завтра.
131 Ненавижу 1С
 
гуру
08.11.13
16:51
(130) стрелки совпадают очевидно на диагонали y=х
132 Wobland
 
08.11.13
16:52
(131) 143+12?
133 Wobland
 
08.11.13
16:52
(132) если чо, я обоснование ответа не знаю
134 Ненавижу 1С
 
гуру
08.11.13
16:53
(132) нет, там и так 12 этих точек уже на диагонали стоят
135 Wobland
 
08.11.13
16:54
(134) ты умножаешь количество квадратов на количество квадратов (минус один). но в некоторых квадратах кроме пересечения синей и красной линий есть ещё и угловая точка...
136 Wobland
 
08.11.13
16:58
картинка нарисована для двух стрелок, движущихся с одинаковой скоростью в противоположном направлении. поправьте меня
137 Ненавижу 1С
 
гуру
08.11.13
17:09
(136) нет, синии линии это движение нормальных часов, тангенс угла наклона равен 12, потому что минутная движется в 12 раз быстрее
красные линии - те же часы, только стрелки сняли и поставили поменяв местами
138 Wobland
 
08.11.13
17:30
(137) логично. но меня смущает непересечение линий в одинаковых углах (см. 132 и 135). правильно построенная модель должна это учиты^W показывать
139 smaharbA
 
08.11.13
17:36
складывать то ладно, а вот как отнимать ?
140 Wobland
 
08.11.13
17:51
ща картинка будет, я всё понял
141 Wobland
 
08.11.13
18:02
https://www.dropbox.com/s/1l2jxbt759hzzhk/clock.jpg

наверху - движение короткой стрелки, внизу - длинной. угол - отклонение от 12 (от 0 до 2пи, 360 градусов и т.д.)
приведя это дело к одному масштабу, мы увидим, что совпадение возможно только в местах пересечений.
как-то не доказал, да? прошу контрпример
142 Wobland
 
08.11.13
18:03
(141) П.С. правая рука не работает, пардоньте за графику
143 mistеr
 
08.11.13
18:50
Пятница удалась...
144 Ненавижу 1С
 
гуру
11.11.13
11:25
развернутое решение задачи из (84):

Введем на циферблате единицу измерения так, что часовая стрелка за час проходит дугу длины 1, а минутная - 12.
За начало отсчета выберем точку полуночи, направление - по движению стрелок.  

Утверждение: Для любых двух полуинтервалов [a;a+1) и [b;b+1) 0<=a,b<=11 (a,b целые) найдется "реальное" расположение часовой стрелки в [a;a+1) и минутной в [b;b+1) такое, что если стрелки поменять местами, то но расположение также будет "реальным". Исключение: a=b=11. Каждый интервал выбирается 12 способами минус исключение: 12*12-1=143.

Пусть координата часовой стрелки x. Через [x] обозначим целую часть координаты (целое число часов), через {x} - дробную часть. x=[x]+{x}.
Если координата при этом минутной стрелки y, то y=12*{x}.
Теперь стрелки поменяем местами и получим: x=12*{y}.
[y]+{y}=12*{x}
[x]+{x}=12*{y}
Решим эту систему относительно дробных частей и покажем, что решение есть для любых a=[x], b=[y], 0<=a,b<=11 кроме a=b=11.
суммируем и переносим:
{x}+{y}=([x]+[y])/11
из чего уже видно, что при [x]=[y]=11 справа будет 2, а сумма двух дробных частей ее не достигает.
вычитаем и переносим:
{x}-{y}=([y]-[x])/13
складываем и вычитаем получившиеся уравнения:
{x} = (12*[y]+[x])/143
{y} = (12*[x]+[y])/143
из чего видно, что решение есть и они удовлетворяют дробным частям (неотрицательны и меньше 1).
145 Wobland
 
11.11.13
11:35
(144) 10х
146 Ненавижу 1С
 
гуру
11.11.13
11:41
(145) чего?
147 Wobland
 
11.11.13
11:42
(146) tenx = thanks. спасибо, вникну на досуге ;)
148 Torquader
 
11.11.13
21:38
Вопрос достойный только семёрошника.
В восьмёрке же у вас всё время хранится в секундах - что мешает перевести в секунды, проделать все манипуляции и перевести обратно ?
Ошибка? Это не ошибка, это системная функция.