Имя: Пароль:
1C
 
Каким образом правильно в 1С работать со временем?
0 rulikch
 
13.05.09
23:47
Как 370 минут перевести так, чтобы на экран пользователю было выдано: 6 часов 17 минут.
1 Дядя Васька
 
13.05.09
23:48
делить в школе учили?
2 Дядя Васька
 
13.05.09
23:49
+(1) Намекну: Окр() даст деление без остатка ;)
3 AlexWolf
 
13.05.09
23:52
Чтобы из "370 минут" получить "6 часов 17 минут", тут думаю делением не обойдешся... ))))
4 H A D G E H O G s
 
13.05.09
23:57
МинутВоВремени=Значение%60;
ЧасовВоВремени=(Значение-МинутВоВремени)/60;
5 miki
 
14.05.09
00:03
(3) :) +1
(0)
370%60 = 10
Int(370/60) = 6
6 Ненавижу 1С
 
гуру
14.05.09
00:06
я знаю уродов (иначе не назовешь), которые кодируют время в целое число по принципу:
ЧислоСекунд+100*ЧислоМинут+100*ЧислоСекунд
7 Bomzh
 
14.05.09
00:09
(6) А почему уродов? Поделитесь плиз правильным и не правильным кодом, чтоб было с чем сравнить... конечно если Вам не трудно!?
8 Cap_1977
 
14.05.09
00:11
(6) бгг. ты тока что всех разработчиков всех версий SQL обозвал уродами ))))
9 miki
 
14.05.09
00:12
(7)некоторые кетайские калькуляторы тоже считают, что в градусе 100 минут, в которых по 100 секунд...
10 Aleksey_3
 
14.05.09
00:14
// *****************************************************************************
// Параметры: время в часах и долях часа
// Возвращаемое значение:  время в часах и минутах
// Описание: Перевод времени из формата храния ("Часы и доли часа") в формат представления
//           ("Часы и минуты").
Функция глЧЧ_ММ(ВрВЧасах) ЭКСПОРТ
   ЧЧ = Цел(ВрВЧасах);
   ММ = Окр(60*(ВрВЧасах - ЧЧ));
   Результат = ЧЧ + ММ/100;
   Возврат Результат;
КонецФункции  //глЧЧ_ММ

// *****************************************************************************
//глВремяВЧасах()
// Параметры: время в часах и минутах
// Возвращаемое значение: время в часах и долях часа
// Описание: Перевод времени из формата представления ("Часы и минуты") в формат храния
//           ("Часы и доли часа").
Функция глВремяВЧасах(ЧЧ_ММ) ЭКСПОРТ
   ЧЧ = Цел(ЧЧ_ММ);
   ММ = Окр(100*(ЧЧ_ММ - ЧЧ));
   Результат = ЧЧ + ММ/60;
   Возврат Результат;
КонецФункции //глВремяВЧасах
(с) Rarus

Соответственно время 6 часов 10 минут в программе будет храниться как 6.17
Т.е. целая часть - часы, дробная часть минуты переведенный в 100
11 Дядя Васька
 
14.05.09
00:15
(9) Ну это типа строка вообще-то...
(7) Как минимум так вроде надо: ЧислоСекунд+Формат(100*ЧислоМинут,"Ч(0)2")+Формат(100*ЧислоСекунд,"Ч(0)2")
12 Bomzh
 
14.05.09
00:16
(9) Прошу прощения, но как начинающий я тоже бы делил на 60 минут, потом на 60 секунд и в итоге получил что нужно, вопрос в чем не правильность такого метода? Долго... возможно, а что не правильно... нусть я китаец, хотя тоже вопрос возникает, как реализовать похожую проблему?
13 Дядя Васька
 
14.05.09
00:21
(12) Скулевское представление времени в виде строки
14 miki
 
14.05.09
00:21
(12)я не давал оценки правильности/неправильности...
а в чем проблема?
15 Ненавижу 1С
 
гуру
14.05.09
00:21
(8) не всех, файрберд/интербейз яно не таков
16 Ненавижу 1С
 
гуру
14.05.09
00:23
просто не понятно почему берут 100, ясно человеку удобно воспринимать как бы, но для машины, хоть 100 хоть 60
было бы 1024 другое дело
17 Bomzh
 
14.05.09
00:26
(14) Прошу прощения, я про Ваше построение времени сказал... я поделил на 60... и получил что требуется и это возможно долго чем у Вас!
18 Bomzh
 
14.05.09
00:33
(17) не про Вашее*
19 miki
 
14.05.09
00:34
(17)хз про какое построение Вы говорите, в моих часах 60 минут...
А долго будет чем у Нас у того, у кого 100 минут в часах...
20 miki
 
14.05.09
00:37
(16)думаешь удобно?
Вон (0) увидел, что 370=6.17 и решил что 17 - это минут, а не сотых часа
21 Bomzh
 
14.05.09
00:38
Пляяя... я не знаком с 8 и тупо пропустил код, так как для меня он не знаком, но деление на 100 сча признал, за что прошу прощения!!! Пасиб за простое тыканье куда надо, а не криками что я дятел(((
22 Bomzh
 
14.05.09
00:39
(21) хотя это и на 7 похоже
23 ZDenis
 
14.05.09
00:41
(0) Я все таки не понимаю зачем пользователю такое видеть. Когда он увидит 6 часов 99 минут, то подумает что одинэснег с ума сошел, хотя если блондинки там работают...
24 Дядя Васька
 
14.05.09
00:41
(21) при чем тут v8? Просто функция которая возвращает не часы/минуты, а часы с дробной частью, например час тридцать это полтора часа, т.е. 1,5 часа
25 Дядя Васька
 
14.05.09
00:42
(23) А (0) это и не нужно, это он просто так посчитал хорошо :)
26 ZDenis
 
14.05.09
00:55
(25) На полном серьезе сейчас скажу. У подруги жены муж, ему около 30 лет. Дело было днем. Жена както обратила внимаение, что на небе видна луна (ну бывает иногда такое днем) и сказала об этом вслух. На следующий день подруга говорит жене, что ее муж ей сказал: "Твоя подруга, что дура, какая луна на небе, луна - это тоже солнце, только ночью".
Это я к тому что может пользователи и проглотят нормально 6 часов 60-99 минут
27 Cap_1977
 
14.05.09
01:52
(15) Та ты шо .... И как же в них датавремя храниться ?
28 kupec
 
14.05.09
09:36
разобрались со временем или нет?
29 kupec
 
14.05.09
09:37
могу дать пример если это еще ому то надо
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.