Имя: Пароль:
1C
1С v8
Как сравнить два времени?
0 AnisaL
 
30.05.13
14:03
День добрый!!!
Скажите пожалуйста, как сравнить текущее время с определенным временем, например с 9-ью часами вечера?
1 patapum
 
30.05.13
14:04
(0) самое примитивное - получаешь часы, минуты, секунды, генерируешь время без даты и сравниваешь
2 Maxus43
 
30.05.13
14:06
9 вечера = Дата('0000000210000');
ТекВремяВЧасах = датаМоя - НачлоДня(датаМоя);

и сравниваешь
3 Mikeware
 
30.05.13
14:07
блиннн.
во люди жадные...
4 AnisaL
 
30.05.13
14:08
(2) Спасибо)))
5 AnisaL
 
30.05.13
14:19
(3) это ты к чему?
6 AnisaL
 
30.05.13
15:03
(2) {МодульОбычногоПриложения(1250)}: Преобразование значения к типу Дата не может быть выполнено
7 Ненавижу 1С
 
гуру
30.05.13
15:04
(6) кот давай
8 AnisaL
 
30.05.13
15:04
+(6) ДатаВремя = Дата("0000000210000");
9 Frost616
 
30.05.13
15:05
(8) не ", а '
10 Wobland
 
30.05.13
15:05
='000000210000'
11 AnisaL
 
30.05.13
15:07
(9) (10) {МодульОбычногоПриложения(1250,31)}: Неправильная константа типа Дата
   ВремяЗакрытияОдинЭски = Дата(<<?>>'0000000210000'); (Проверка: Толстый клиент (обычное приложение))
12 Mitriy
 
30.05.13
15:08
Дата("00010101210000")
13 Frost616
 
30.05.13
15:09
(11) одной цифры не хватает
14 Frost616
 
30.05.13
15:10
+(13) 'ггггммддччммсс'
15 Mitriy
 
30.05.13
15:12
(2) не будет работать... разные типы...
16 AnisaL
 
30.05.13
15:13
(12) да, так правильно)
17 Wobland
 
30.05.13
15:13
(12) точно ж первоя января первого года
18 AnisaL
 
30.05.13
15:13
(15) {МодульОбычногоПриложения(1254)}: Операции сравнения на больше-меньше допустимы только для значений совпадающих примитивных типов (Булево, Число, Строка, Дата)
19 Mitriy
 
30.05.13
15:13
Секунды = Дата("00010101210000") - Дата("00010101180000");
20 AnisaL
 
30.05.13
15:14
+ (18)    Если ТекВремяВЧасах < ВремяЗакрытияОдинЭски Тогда
21 Grobik
 
30.05.13
15:17
ЧасыДляСравнения*3600;
ВремяДляСравнения=Дата(НачалоДня(ТекущаяДата()))+ЧасыДляСравнения*3600;;

И сравнивать.
22 Mitriy
 
30.05.13
15:17
(18) можно посчитать разницу запросом:

"ВЫБРАТЬ    РАЗНОСТЬДАТ(&Дата1, &Дата2, СЕКУНДА) КАК Разница"

Вместо секунд можно использовать и Минута, и Час...
23 Frost616
 
30.05.13
15:18
(18)
   Дата1 = Дата('00010101210000');
   Дата2 = Дата('00010101210012');
   Если Дата2 > Дата1 ТОгда
       Сообщить("Дата2 больше");
   КонецЕсли;
все работает
24 Grobik
 
30.05.13
15:19
Копипаст глюкнул

ВремяДляСравнения=Дата(НачалоДня(ТекущаяДата()))+ЧасыДляСравнения*3600;
25 AnisaL
 
30.05.13
15:22
(23) ага, это понятно, но мне надо сравнить с текущим временем
26 Frost616
 
30.05.13
15:22
(0) а вообще суть проблемы в студию. Для каких целей это нужно?
27 Frost616
 
30.05.13
15:24
(25) именно по времени сравнение?
28 Maxus43
 
30.05.13
15:25
(25) ну дак в (2) же правильно, кроме того что единички в дате забыл) чтоб сравнить с текущим своим временем
29 Frost616
 
30.05.13
15:26
(25) что тогда мешает отрезать время, перегнать в числа и сравнить?
30 salvator
 
30.05.13
15:26
Время1 = Дата1-НачалоДня(Дата1);
Время2 = Дата2-НачалоДня(Дата2);
Если Время1 = Время2 Тогда
 Сообщить("Время совпадает!");
Иначе
 Сообщить("Время не совпадает!");
КонецЕсли;
31 НЕА123
 
30.05.13
15:27
(20)
Если Час(ТекВремяВЧасах) < ВремяЗакрытияОдинЭски
32 Frost616
 
30.05.13
15:27
(30) +100500
33 AnisaL
 
30.05.13
15:29
(27) ага, именно по времени закрытие 1с-ки должно произойти)
34 AnisaL
 
30.05.13
15:30
(28) к сожалению нет, ошибка (18)
35 Frost616
 
30.05.13
15:31
(33) Чиво? а проверять в какой момент?
36 AnisaL
 
30.05.13
15:32
(35) стоит обработчик "ПодключитьОбработчикОжидания"
37 salvator
 
30.05.13
15:34
(34) А что непонятного в тексте ошибки?
38 Великий Нехочуха
 
30.05.13
15:36
а чем не подходит -

Час(ТекущаяДата())>=21;
39 AnisaL
 
30.05.13
15:36
(37) понятно - число сравнивается с датой
40 salvator
 
30.05.13
15:38
(39) Так сравнивай число с числом. Примеров уже туева хуча.
41 samozvanec
 
30.05.13
15:38
вроде не пятница...
42 Frost616
 
30.05.13
15:42
(39) а если так
   НужноеВремяЧисло = 210000; //допустим в 21:00
   ТекущееВремяЧисло = Число(Строка(Час(ТекущаяДата()))+Строка(Минута(ТекущаяДата()))+Строка(Секунда(ТекущаяДата())));
   Если НужноеВремяЧисло < ТекущееВремяЧисло ТОгда
       //что-то там
   КонецЕсли;
;)
43 Wobland
 
30.05.13
15:44
(42) 100*час+10*мин+сек
44 Wobland
 
30.05.13
15:45
(43) всё, вижу строки ;)
45 Frost616
 
30.05.13
15:45
(43) не надо искать легких путей)))
46 Frost616
 
30.05.13
15:50
(43) раз уж на то пошло то 10000*час+100*мин+сек
47 AnisaL
 
30.05.13
15:54
(42) да, вот так получилось) спасибо!
48 salvator
 
30.05.13
15:57
(47)
НужноеВремяЧисло = 21*60*60;
ТекущееВремяЧисло = ТекущаяДата()-НачалоДня(ТекущаяДата());
Если НужноеВремяЧисло <> ТекущееВремяЧисло Тогда
...
49 AnisaL
 
30.05.13
15:59
(48) да что ж ты не успокоишься, я ж написала, все получилось)
50 salvator
 
30.05.13
16:00
(49) Если хочешь делать через *опу, ок.
51 AnisaL
 
30.05.13
16:02
(50) кто такое сказал? наоборот я и тему создала чтоб узнать как правильнее сделать)
52 Frost616
 
30.05.13
16:03
(51) вообще правильнее в (48), то был стебный вариант
53 AnisaL
 
31.05.13
07:43
(52) ну вот( а у меня он работает
54 AnisaL
 
31.05.13
07:47
(52) ваще не хорошо над девушками стебаться.
55 НЕА123
 
31.05.13
10:52
по мне (38)(31) проще.
56 ptiz
 
31.05.13
10:56
Жаль, что пост (30) автор не видит.