|
Разность дат | ☑ | ||
---|---|---|---|---|
0
Sa6nek6
26.11.12
✎
13:32
|
Подскажите чайничку как вычислить число между датами?
Приехал клиент в гостиницу снял номер по n-цене С Даты По Дату? Как вычислить число между датами чтоб потом умножить на n-цену |
|||
1
zak555
26.11.12
✎
13:33
|
ты хочешь узнать количество дней ?
|
|||
2
Sa6nek6
26.11.12
✎
13:33
|
Ага)
|
|||
3
Euguln
26.11.12
✎
13:33
|
"-" не предлагать?
|
|||
4
Sa6nek6
26.11.12
✎
13:33
|
есть ли станарт функция?
|
|||
5
ssh2006
26.11.12
✎
13:34
|
Выбрать РазностьДат(Дата1, Дата2, День)
|
|||
6
Sa6nek6
26.11.12
✎
13:34
|
Спасиб!
|
|||
7
МишКа
26.11.12
✎
13:34
|
(0) Есть такая операция - вычитание, она же разность. Только учти, что это будут секунды.
|
|||
8
Sa6nek6
26.11.12
✎
13:35
|
// Вычисляет _разницу_ (в днях) между двумя датами.
// Чтобы вычислить _длину_ периода - нужно добавить 1 Функция глРазницаДат(ДатаС, ДатаПо) Экспорт Разн=Цел((НачалоДня(ДатаПо) - НачалоДня(ДатаС)) / (60 * 60 * 24)); Возврат Разн; КонецФункции // глРазницаДат() // Вычисляет _длину_ периода (в днях) между двумя датами. Кон-Нач+1 Функция глДлинаПериода(ДатаС, ДатаПо) Экспорт Возврат глРазницаДат(ДатаС, ДатаПо)+1; КонецФункции // глРазницаДат() Функция глДобавитьДень(Дат, ЧислоДней) Экспорт Возврат Дат+ЧислоДней*(60 * 60 * 24); КонецФункции // глДобавитьДень() |
|||
9
Sa6nek6
26.11.12
✎
13:35
|
как то так ? правильно или нет????
|
|||
10
Cube
26.11.12
✎
13:38
|
(8) О, функции... А чо обработку не создал с экспортируемыми функциями расчета разницы дат, чтобы ещё интереснее было?))
|
|||
11
МишКа
26.11.12
✎
13:38
|
(9) У тебя утро-вечер будет равно 0 дней. +1 поставь.
|
|||
12
Sa6nek6
26.11.12
✎
13:40
|
Функция глДобавитьДень(Дат, ЧислоДней) Экспорт
Возврат Дат+ЧислоДней*(60 * 60 * 24)+1; КонецФункции // глДобавитьДень() Тута?? |
|||
13
МишКа
26.11.12
✎
13:40
|
+(11) А, нет же. НачалодняДня стоит. Все правильно.
|
|||
14
МишКа
26.11.12
✎
13:41
|
Можно было цел() не ставить. Оно всегда целое.
|
|||
15
МишКа
26.11.12
✎
13:41
|
(12) Не надо.
|
|||
16
Sa6nek6
26.11.12
✎
13:42
|
Да я нашел этот код просто хотел спросить правильно ли он написан и вставить куда лушче??
|
|||
17
МишКа
26.11.12
✎
13:46
|
Непонятно почему в функции длинапериода стоит +1.
Получается, что если начало и конец в одном дне, тогда длина периода не 0, а 1. |
|||
18
Sa6nek6
26.11.12
✎
13:52
|
Через запрос проще будет?
|
|||
19
МишКа
26.11.12
✎
13:52
|
(18) Безусловно. Читай (5).
|
|||
20
Sa6nek6
26.11.12
✎
13:54
|
РАЗНОСТЬДАТ(РегистрацияПостояльцев.ДатаС,РегистрацияПостояльцев.ДатаПо, <Тип>)
что в типе указать? |
|||
21
МишКа
26.11.12
✎
13:54
|
Хотя, если говорить только о днях. Все, что тебе нужно, это:
Разн=(НачалоДня(ДатаПо) - НачалоДня(ДатаС)) / (60 * 60 * 24)) |
|||
22
МишКа
26.11.12
✎
13:55
|
(20) Так и писать День. Без кавычек.
|
|||
23
Cunni
26.11.12
✎
13:55
|
День, Месяц, Год. СП и справка(через ф1) в помощь. Про запросы больше в справке написано, в частности функция разностьдат()
|
|||
24
Sa6nek6
26.11.12
✎
13:55
|
И все? Вставить в форму?
|
|||
25
МишКа
26.11.12
✎
13:56
|
(20) У вас расчетный час 24:00 ?
|
|||
26
Sa6nek6
26.11.12
✎
13:56
|
Ага
|
|||
27
Sa6nek6
26.11.12
✎
13:57
|
а каквзять этот день от туда сильно уж чайник)
|
|||
28
МишКа
26.11.12
✎
13:57
|
(24) Создать запрос. Выполнить запрос. Получить результат запроса. И только потом можно делать с ним что желаешь (например вставлять в форму.)
|
|||
29
МишКа
26.11.12
✎
13:58
|
(27) Пиши, как в (21) тогда.
|
|||
30
Sa6nek6
26.11.12
✎
13:59
|
Это без запроса тога?
|
|||
31
Sa6nek6
26.11.12
✎
14:00
|
Лан спасибо огромное буду разбираться Спасибо!
|
|||
32
Sa6nek6
26.11.12
✎
14:11
|
(29)
&НаСервере Функция ПолучитьДень() //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РегистрацияПостояльцев.ДатаС, | РегистрацияПостояльцев.ДатаПо, | РАЗНОСТЬДАТ(РегистрацияПостояльцев.ДатаС, РегистрацияПостояльцев.ДатаПо, ДЕНЬ) КАК Поле1 |ИЗ | Документ.РегистрацияПостояльцев КАК РегистрацияПостояльцев"; Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда Возврат ВыборкаДетальныеЗаписи.День; КонецЕсли; Возврат 0; КонецФункции |
|||
33
Sa6nek6
26.11.12
✎
14:11
|
МишКа так не???
|
|||
34
Sa6nek6
26.11.12
✎
14:13
|
:(
|
|||
35
Sa6nek6
26.11.12
✎
14:16
|
Хто нить глянте код!
|
|||
36
kosts
26.11.12
✎
14:21
|
(32) С и ПО вроде наоборот нужно.
Где условие ? |
|||
37
Sa6nek6
26.11.12
✎
14:23
|
Местами поменять? Какое?
|
|||
38
Sa6nek6
26.11.12
✎
14:25
|
&НаСервере
Функция РассчетДень() //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РегистрацияПостояльцев.ДатаС, | РегистрацияПостояльцев.ДатаПо, | РАЗНОСТЬДАТ(РегистрацияПостояльцев.ДатаПо, РегистрацияПостояльцев.ДатаС, ДЕНЬ) КАК Поле1 |ИЗ | Документ.РегистрацияПостояльцев КАК РегистрацияПостояльцев"; Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда Возврат ВыборкаДетальныеЗаписи.День; КонецЕсли; Возврат 0; КонецФункции |
|||
39
AndyD
26.11.12
✎
14:28
|
" КАК Поле1"...
"Возврат ВыборкаДетальныеЗаписи.День;" поменяй на " КАК День" |
|||
40
Sa6nek6
26.11.12
✎
14:30
|
&НаСервере
Функция РасчетДень() //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РегистрацияПостояльцев.ДатаС, | РегистрацияПостояльцев.ДатаПо, | РАЗНОСТЬДАТ(РегистрацияПостояльцев.ДатаПо, РегистрацияПостояльцев.ДатаС, ДЕНЬ) КАК День |ИЗ | Документ.РегистрацияПостояльцев КАК РегистрацияПостояльцев"; Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Если ВыборкаДетальныеЗаписи.Следующий() Тогда Возврат ВыборкаДетальныеЗаписи.День; КонецЕсли; Возврат 0; КонецФункции |
|||
41
Sa6nek6
26.11.12
✎
14:31
|
А как теперь этот день умножить на цену примерно что писать?
|
|||
42
Sa6nek6
26.11.12
✎
14:31
|
И эту функцию в процедуру записать? и там выполнять?
|
|||
43
AndyD
26.11.12
✎
14:43
|
Возврат ВыборкаДетальныеЗаписи.День*ЦенаЗаДень;
|
|||
44
Мимо Проходил
26.11.12
✎
14:47
|
В гостиницах расчетный час обычно 12-00.
Так что находишь ближейший "больший" полдень для выезда и "меньший" для заезда. Потом вычисляешь разницу. |
|||
45
Serg_1960
26.11.12
✎
14:52
|
И проверку на заполнение значений - обязательно надо.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |