|
подскажите как правильно сравнить дату | ☑ | ||
---|---|---|---|---|
0
dvrk
26.05.21
✎
08:11
|
Привет, есть реквизит с типом дата, как сравнить, что та дата была больше чем 3 месяца назад?
|
|||
1
Bigbro
26.05.21
✎
08:13
|
посчитать количество дней в месяцах между датами, умножить на 86400, сравнить полученное с разницей дат.
|
|||
2
SleepyHead
гуру
26.05.21
✎
08:13
|
(0) Вычисли дату, которая была три месяца назад, и сравни с ней.
Ваш Кэп. |
|||
3
Йохохо
26.05.21
✎
08:14
|
||||
4
Bigbro
26.05.21
✎
08:16
|
главный вопрос что такое "3 месяца назад".
для 31 мая это будет 28 февраля? а для 30 апреля - 31 января? а для 15го? а если нет то как? |
|||
5
SleepyHead
гуру
26.05.21
✎
08:17
|
(4) Во валит ))
|
|||
6
DimVad
26.05.21
✎
08:20
|
НачалоДня_ = НачалоДня(МойРеквизит);
Если НачалоДня_ > ДобавитьМесяц(НачалоДня_, -3) Тогда Сообщить("А он больше..."); Иначе Сообщить("Фиг вам..."); КонецЕсли; |
|||
7
Йохохо
26.05.21
✎
08:21
|
(6) шедевр
|
|||
8
DimVad
26.05.21
✎
08:21
|
(6) Не проснуляся :
Конечно, ДобавитьМесяц(НачалоДня(ТекущаяДата())) |
|||
9
Dotoshin
26.05.21
✎
08:22
|
(4) Сдается мне, что нужно сравнить текущее значение реквизита с тем которое было три месяца назад в этом же реквизите.
Думаю если нет истории изменения этого реквизита, то без машины времени тут не обойтись... |
|||
10
dvrk
26.05.21
✎
08:24
|
(9) не, мне надо знать датасоздания больше или меньше 3 месяцев
|
|||
11
DimVad
26.05.21
✎
08:27
|
(10) Ну, датасоздания содержит дату и время
Значит НачалоДня_ = НачалоДня(МойРеквизит) - то, что проверяем т.е. сравниваем с ДобавитьМесяц(НачалоДня(ТекущаяДата()), -3) |
|||
12
Bigbro
26.05.21
✎
08:28
|
(10) на (4) ответ есть?
|
|||
13
Dotoshin
26.05.21
✎
08:28
|
(10) А три месяца от какого момента надо отсчитывать?
|
|||
14
DimVad
26.05.21
✎
08:28
|
Я после "штурма". Пойду дальше спать. Извините, если что...
|
|||
15
dvrk
26.05.21
✎
08:29
|
(13) в которорый обработку запусккают
|
|||
16
lodger
26.05.21
✎
08:30
|
(10)
ЗапросКонтр = новый запрос("выбрать Спрконтрагент.ссылка, Выбор когда Спрконтрагент.ТвойРеквизит > &ГраницаДаты тогда "ОнЖеСтарый" иначе "ОнЖеНовый" конец как СостояниеКонтры из справочники.контрагенты как Спрконтрагент"); ЗапросКонтр.УстановитьПараметр("ГраницаДаты",ДобавитьМесяц(НачалоДня(ТекущаяДата()), -3)); |
|||
17
Bigbro
26.05.21
✎
08:33
|
3 месяца июнь июль август = 92 дня назад
3 месяца февраль март апрель = 89 дней назад можно просто принять что 3 месяца = 90 дней. есть еще варианты, с добавитьмесяц(,-3), как тут уже предлагали. выбор за тобой. |
|||
18
Dotoshin
26.05.21
✎
08:33
|
(15) Ну тогда (11)
|
|||
19
dvrk
26.05.21
✎
08:34
|
спасибо!
|
|||
20
dvrk
26.05.21
✎
08:47
|
(12) да хз, я уж думаю просто 90 дней пойдёт
|
|||
21
dvrk
26.05.21
✎
08:54
|
(17) а, вы уже это и написали) извиняюсь
|
|||
22
DrZombi
гуру
26.05.21
✎
09:09
|
(0) Через запрос
ВЫБРАТЬ &ДатаТекущая КАК ДатаТекущая, НАЧАЛОПЕРИОДА(&ДатаТекущая, МЕСЯЦ) КАК ДатаНачалоМесяца, ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(&ДатаТекущая, МЕСЯЦ), МЕСЯЦ, -3) КАК ДатаПрошлого |
|||
23
Bigbro
26.05.21
✎
09:10
|
(20) лучше уточнить у того кто ставит задачу.
даже если это просто тестовое задание. а если реальная потребность - у бизнес пользователей может быть совершенно разное понимание что такое 3 месяца назад, лучше убедиться что вы понимаете этот термин одинаково. |
|||
24
dvrk
26.05.21
✎
10:26
|
(23) да сказали 90 дней норм (22) спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |