|
v7: Работа со временем в 1с 7.7? | ☑ | ||
---|---|---|---|---|
0
Ночной Эльф
31.07.12
✎
13:46
|
Как в 1с 7.7 пользоваться временем и есть ли такая переменная типа время? Собственно задача такая берется к примеру переменная "Код" которое имеет значение либо 1 либо 0.
ВремяНачало = <9:00>; \\<<< какого типо он должен быть? Если Код = 1 тогда ВремяНачало = ВремяНачало + <30 минут>; Иначе ВремяНачало = ВремяНачало + <60 минут>; КОнецЕсли; Как такое можно сделать? Чтобы в итоге получилось либо 9:30 либо 10:00. И так не один раз а в цикле вплоть до 18:00? Всем заранее спасибо. |
|||
1
zak555
31.07.12
✎
13:47
|
ТиС ?
|
|||
2
m g r
31.07.12
✎
13:48
|
УстановитьВремя(ч,м,с);
|
|||
3
Ork
31.07.12
✎
13:49
|
(0) Встроенная функция ТекеущееВремя() - наше Фсе.
Получаешь часы, минуты, секунды. Как число. Дальше складывай, вычитай, сравнивай с любым числом. |
|||
4
Азат
31.07.12
✎
13:49
|
я обычно делаю так - получаю время как ТекущееВремя(ЧЧ, ММ, СС);
а потом Время = СС + ММ * 60 + ЧЧ * 3600; ну и прибавление: Если Код = 1 Тогда Время = Время + 30 * 60 Иначе Время = Время + 60 * 60 |
|||
5
Heckfy
31.07.12
✎
13:50
|
Вот еще полезная штучка: http://yandex.ru/yandsearch?text=_getperformanceconter()&lr=213
|
|||
6
Ночной Эльф
31.07.12
✎
13:51
|
(1) комплексная
|
|||
7
Ночной Эльф
31.07.12
✎
13:52
|
(4) а тип какой число ?
|
|||
8
Азат
31.07.12
✎
13:53
|
(7) да, ЧЧ, ММ, СС - числа
|
|||
9
Злопчинский
31.07.12
✎
13:57
|
в помощь
http://infostart.ru/public/13835/ |
|||
10
Ночной Эльф
31.07.12
✎
14:46
|
че то не получается у меня не как делают вот так
ТекущееВремя(ЧЧ, ММ); ЧЧ = 9; ММ = 1; Пока Запрос.Группировка(1) = 1 Цикл Если Запрос.Разрешение180 = 1 Тогда Время = ММ * 60 + ЧЧ; Сообщить(Время); Иначе Время = ММ * 60 + ЧЧ; * 30); Сообщить(Время); КонецЕсли; вобще не то получается |
|||
11
Ночной Эльф
31.07.12
✎
14:46
|
вернее вот так
ТекущееВремя(ЧЧ, ММ); ЧЧ = 9; ММ = 1; Пока Запрос.Группировка(1) = 1 Цикл Если Запрос.Разрешение180 = 1 Тогда Время = ММ * 30 + ЧЧ; Сообщить(Время); Иначе Время = ММ * 60 + ЧЧ; * 30); Сообщить(Время); КонецЕсли; вобще не то получается |
|||
12
Ёпрст
31.07.12
✎
14:48
|
(11) что написал, то и получил..
И зачем в этом коде ТекущееВремя(ЧЧ, ММ); - не ясно. |
|||
13
Азат
31.07.12
✎
14:49
|
(10) давай косарик на киви, если сам прочитать совет не можешь)
|
|||
14
ADirks
31.07.12
✎
14:51
|
например
///******************************** ADirks 15.05.2012 ************ Функция фПустоеВремя(Знач стрВремя) Экспорт стрВремя = СокрЛП(стрВремя); Если ПустаяСтрока(стрВремя) = 1 Тогда Возврат 1; ИначеЕсли стрВремя = ":" Тогда Возврат 1; КонецЕсли; Возврат 0; КонецФункции ///******************************** ADirks 15.05.2012 ************ ///******************************** ADirks 15.05.2012 ************ Функция ВремяИзСтрокиВСекунды(стрВремя) Экспорт сзВремя = СтрокуВСписок(стрВремя, ":", 1); чВремя = 0; н = сзВремя.РазмерСписка(); нЧасть = 1; Пока н > 0 Цикл часть = Число(сзВремя.ПолучитьЗначение(н)); Если нЧасть = 1 Тогда чВремя = чВремя + часть; ИначеЕсли нЧасть = 2 Тогда чВремя = чВремя + (часть * 60); ИначеЕсли нЧасть = 3 Тогда чВремя = чВремя + (часть * 60 * 24); КонецЕсли; н = н - 1; нЧасть = нЧасть + 1; КонецЦикла; Возврат чВремя; КонецФункции ///******************************** ADirks 15.05.2012 ************ ///******************************** ADirks 15.05.2012 ************ Функция ВремяИзСекундВСтроку(Знач чВремя, нГруппЦифр = -1) Экспорт сзВремя = СоздатьОбъект("СписокЗначений"); Делитель = 60; Пока чВремя > 0 Цикл ост = чВремя % Делитель; сзВремя.ВставитьЗначение(1, Формат(ост, "Ч(0)2")); чВремя = (чВремя - ост) / Делитель; КонецЦикла; Если нГруппЦифр <> -1 Тогда Пока сзВремя.РазмерСписка() < нГруппЦифр Цикл сзВремя.ВставитьЗначение(1, "00"); КонецЦикла; КонецЕсли; Возврат СписокВСтроку(сзВремя, ":"); КонецФункции ///******************************** ADirks 15.05.2012 ************ ///******************************** ADirks 15.05.2012 ************ Функция СложитьВремя(стрВремя1, стрВремя2) Экспорт чВремя1 = ?(ТипЗначения(стрВремя1)=1, стрВремя1, ВремяИзСтрокиВСекунды(стрВремя1)); чВремя2 = ?(ТипЗначения(стрВремя2)=1, стрВремя2, ВремяИзСтрокиВСекунды(стрВремя2)); Возврат ВремяИзСекундВСтроку(чВремя1 + чВремя2); КонецФункции ///******************************** ADirks 15.05.2012 ************ ///******************************** ADirks 16.05.2012 ************ Функция фВремяПопадаетВИнтервал(стрНачИнтервала, стрКонИнтервала, стрВремя) Экспорт Если стрВремя < стрНачИнтервала Тогда Возврат 0; КонецЕсли; Если стрВремя > стрКонИнтервала Тогда Возврат 0; КонецЕсли; Возврат 1; КонецФункции ///******************************** ADirks 16.05.2012 ************ ///******************************** ADirks 11.07.2012 ************ //Если Заголовок == -1 то без ввода обрабатываем вх.строку Время Функция ВвестиВремя(Знач Время, Заголовок) Экспорт Если Заголовок <> -1 Тогда Если ВвестиСтроку(Время, Заголовок, 5) <> 1 Тогда Возврат ""; КонецЕсли; КонецЕсли; Время = СокрЛП(Время); Если СтрДлина(Время) <= 2 Тогда чВремя = Число(Время); Время = Формат(чВремя, "Ч(0)2") + ":00"; КонецЕсли; Если (СтрДлина(Время) = 4) И (Найти(Время, ":") = 0) Тогда Время = Лев(Время, 2)+":"+Сред(Время, 3); КонецЕсли; Возврат Время; КонецФункции ///******************************** ADirks 11.07.2012 ************ ///******************************** ADirks 11.07.2012 ************ Функция фВремяВведеноКорректно(Знач Время) Экспорт Время = СокрЛП(Время); Если СтрДлина(Время) <> 5 Тогда Возврат 0; КонецЕсли; Если фСтрокаСодержитТолькоДопустимыеСиволы(Время, "0123456789:") <> 1 Тогда Возврат 0; КонецЕсли; Если Время > "24:59" Тогда Возврат 0; КонецЕсли; Возврат 1; КонецФункции ///******************************** ADirks 11.07.2012 ************ |
|||
15
miki
31.07.12
✎
15:12
|
(14)т. е. с 23:59 до 24:59 валидное время?
|
|||
16
Ночной Эльф
01.08.12
✎
08:40
|
(14) Подскажи пожалуйста что это за функция такая
СтрокуВСписок() Понять не могу ? ругается на нее |
|||
17
izekia
01.08.12
✎
08:43
|
(5) counter
|
|||
18
Светлый Гений
01.08.12
✎
08:52
|
(16)Эта функция, которая элементы списока запихивает в строку, разделяя их вторым переданным параметром.
|
|||
19
Светлый Гений
01.08.12
✎
08:52
|
(18)*списка
|
|||
20
yanejsh
01.08.12
✎
08:58
|
Код=2;
Ч=9; М=0; С=0; Время=""+Формат(Ч,"Ч(0)2")+":"+Формат(М,"Ч(0)2")+":"+Формат(С,"Ч(0)2"); Сообщить(""+Время); Время=3600*Ч+60*М+С; Если Код = 1 тогда Время = Время + 30*60; Иначе Время = Время + 60*60; КонецЕсли; Сообщить(""+Время); Дни=Цел(Время/86400); Время=Время-Дни*86400; Ч=Цел(Время/3600); Время=Время-Ч*3600; М=Цел(Время/60); Время=Время-М*60; С=Время; ТекСтрока=Строка(Дни)+"/"+Формат(Ч,"Ч(0)2")+":"+Формат(М,"Ч(0)2")+":"+Формат(С,"Ч(0)2"); Сообщить(""+ТекСтрока); |
|||
21
ADirks
01.08.12
✎
09:56
|
Функция СтрокуВСписок(_Стр_, Разделитель = ",", ОбрезатьПробелы = 0) Экспорт
Перем Стр, Поз; Перем Сп, Зн; Сп = СоздатьОбъект("СписокЗначений"); Стр = СтрЗаменить(_Стр_, Разделитель, РазделительСтрок); КоличествоСтрок = СтрКоличествоСтрок(Стр); Для н = 1 По КоличествоСтрок Цикл Зн = СтрПолучитьСтроку(Стр, н); Если ОбрезатьПробелы = 1 Тогда Зн = СокрЛП(Зн); КонецЕсли; Сп.ДобавитьЗначение(Зн, Зн); КонецЦикла; Возврат Сп; КонецФункции Функция СписокВСтроку(Сп, Разделитель = ",", ВключатьПустыеЗначения = 0) Экспорт Перем н, Стр, Значение, Зпт; Стр = ""; Зпт = ""; Для н = 1 По Сп.РазмерСписка() Цикл Значение = Строка( Сп.ПолучитьЗначение(н) ); Если (ПустаяСтрока(Значение) = 0) ИЛИ (ВключатьПустыеЗначения = 1) Тогда Стр = Стр + Зпт + Значение; Зпт = Разделитель; КонецЕсли; КонецЦикла; Возврат Стр; КонецФункции |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |