![]() |
|
Пересечение периодов | ☑ | ||
---|---|---|---|---|
0
sergqwert
19.07.17
✎
16:11
|
Составить обработку, которая проверяет пересечение периодов и вывести его, если есть. Входные параметры - НачПериода1,НачПериода2,КонПериода1, КонПериода2.
Выходной параметр - НачПериода, КонПериода; или Сообщение - "Пересечения нет". Условие - Если не заполнена начальная дата периода, то это означает "-бесконечность"; Если не заполнена конечная дата, то это означает "+бесконечность". Что в этом коде не так: Если КонПериод2 > КонПериод1 Тогда Если НачПерио2 > КонПериод1 Тогда Сообщить("Пересечения нет"); Иначе Сообщить("Пересечение есть"); КонецЕсли; Иначе Если КонПериод2 < НачПериод1 Тогда Сообщить("Пересечения нет"); Иначе Сообщить("Пересечение есть"); КонецЕсли; КонецЕсли; Если КонПериод2 < КонПериод1 Тогда Сообщить("Пересечение есть"); Если НачПериод >КонПериод Тогда Сообщить("Пересечения нет"); КонецЕсли; КонецЕсли; Если Не ЗначениеЗаполнено(НачПериод1) Тогда Сообщить("-бесконечность"); КонецЕсли; |
|||
1
X Leshiy
19.07.17
✎
16:12
|
Собеседование? :)
|
|||
2
lodger
19.07.17
✎
16:14
|
(1) на студентоту больше похоже.
|
|||
3
МихаилМ
19.07.17
✎
16:15
|
встречал неоднократно эту задачу во франях. раза 4 за 12 лет.
|
|||
4
Про100Филя
19.07.17
✎
16:16
|
(0) Нету проверки на корректность периода
|
|||
5
Про100Филя
19.07.17
✎
16:17
|
(4) + Сравнения не правильные в корне
|
|||
6
X Leshiy
19.07.17
✎
16:17
|
(3) Точно! Мне на "Рарусе" на собеседовании давали :)
|
|||
7
Йохохо
19.07.17
✎
16:25
|
(6) "- студент, напишите теорему Н.
- диктуйте" |
|||
8
sergqwert
19.07.17
✎
16:27
|
возврат пересечения периодов?
|
|||
9
lodger
19.07.17
✎
16:33
|
Что в этом коде не так:
1) периодов не 2, а 3. НачПерио2, НачПериод1, НачПериод КонПериод2, КонПериод1, КонПериод грубая ошибка. минус 2 балла. 2) разные стили написания в начале и в конце. ошибка. минус балл. 3) результаты через сообщить. нарушение. минус балл. ваша оценка - 1. следующий! |
|||
10
undertaker
19.07.17
✎
18:09
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ | ВЫБОР | КОГДА &НачалоПериода2 МЕЖДУ &НачалоПериода1 И &КонецПериода1 | ТОГДА &НачалоПериода2 | ИНАЧЕ &НачалоПериода1 | КОНЕЦ КАК НачалоПериодаПересечения, | ВЫБОР | КОГДА &КонецПериода2 МЕЖДУ &НачалоПериода1 И &КонецПериода1 | ТОГДА &КонецПериода2 | ИНАЧЕ &КонецПериода1 | КОНЕЦ КАК КонецПериодаПересечения |ГДЕ | (&НачалоПериода2 МЕЖДУ &НачалоПериода1 И &КонецПериода1 | ИЛИ &КонецПериода2 МЕЖДУ &НачалоПериода1 И &КонецПериода1)"; Запрос.УстановитьПараметр("НачалоПериода1", Объект.НачПериода1); Запрос.УстановитьПараметр("КонецПериода1", ?(ЗначениеЗаполнено(Объект.КонПериода1), КонецДня(Объект.КонПериода1), Дата(3999, 12,31,23,59,59))); Запрос.УстановитьПараметр("НачалоПериода2", Объект.НачПериода2); Запрос.УстановитьПараметр("КонецПериода2", ?(ЗначениеЗаполнено(Объект.КонПериода2), КонецДня(Объект.КонПериода2), Дата(3999, 12,31,23,59,59))); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Сообщить("Есть пересечение: " + Выборка.НачалоПериодаПересечения + "-" + Выборка.КонецПериодаПересечения); Иначе Сообщить("Пересечений нет"); КонецЕсли; |
|||
11
lodger
19.07.17
✎
18:14
|
(10) на НачПериода тоже надо наложить условие на заполнено.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |