![]() |
![]() |
![]() |
|
ДобавитьМесяц(ДобавитьМесяц(Дата(2008,01,31),1),-1) | ☑ | ||
---|---|---|---|---|
0
Serzhio
01.08.08
✎
17:25
|
У вас что получается? Или просто нужно поставить последний релиз? (у меня 8.1.9.57)
|
|||
1
butterbean
01.08.08
✎
17:26
|
у меня 8.1.10.50
29.01.2008 0:00:00 |
|||
2
Serzhio
01.08.08
✎
17:29
|
Это известный баг и я отстал от жизни????
|
|||
3
NiXeR
01.08.08
✎
17:30
|
А что именно не устраивает? Все логично.
Сначало происходит добавление месяца к 2008.01.31. Т.к. 2008.02.31 нет, дата становится последним числом месяца 2008.02.29. Второе действие убирает месяц 2008.02.29 - 1 месяц = 2008.01.29 |
|||
4
1C-Nick
01.08.08
✎
17:31
|
Дело в том что в 2008 году в феврале 29 дней, результат вложенной функции будет 29.02.08 отняв месяц получите 29.01.08
Если надо чтобы был последний день месяца, тогда КонецМесяца(ДобавитьМесяц(ДобавитьМесяц(Дата(2008,01,31),1),-1)) |
|||
5
Serzhio
01.08.08
✎
17:32
|
Нда? А я думал если из последней даты месяца мы вычитаем месяц то получаем последнюю дату предыдущего месяца. Для этого и функция. И как оно определяет сколько дней в каком случае прибавлять???
|
|||
6
1C-Nick
01.08.08
✎
17:37
|
Определяется числом
грубо говря Дата(год, Месяц, Число) - добавить месяц - Дата(Год, Месяц + Дельта, Число) но с проверкой на число |
|||
7
Serzhio
01.08.08
✎
17:42
|
ДобавитьМесяц(Дата(2008,04,30),-1)=30 марта
|
|||
8
Serzhio
01.08.08
✎
17:42
|
т.е. оно тупо отнимает 31 день????
|
|||
9
Serzhio
01.08.08
✎
17:52
|
Прикол, а я ее оказывается много лет не так понимал.
Когда мы 31 января говорим: "Событие наступит через месяц" - мы имеем в виду 29 февраля, а когда мы 29 февраля говорим: "Событие было месяц назад" - мы имеем в виду 29 января. |
|||
10
1C-Nick
01.08.08
✎
17:57
|
Я же говорю, если надо четко конец месяца то уже вручную контроллируй
Например Если КонецДня(ТекДата) = КонецМесяца(ТекДата) Тогда //используем КонецМесяца КонецМесяца(ДобавитьМесяц(ДобавитьМесяц(Дата(2008,01,31),1),-1)) Иначе //как обычно ДобавитьМесяц(ДобавитьМесяц(Дата(2008,01,31),1),-1) КонецЕсли; правда наверное надо контроль делать чисел 28 - 31 ... |
|||
11
hhhh
01.08.08
✎
18:00
|
(9) сам не знаешь, чего хочешь
|
|||
12
Serzhio
01.08.08
✎
18:07
|
(11) нет в (9) я написал как оно работает. А я раньше думал что если из последней даты месяца мы вычитаем месяц то получаем последнюю дату предыдущего месяца.
|
|||
13
hhhh
01.08.08
✎
18:14
|
(12) а если из предпоследней вычесть, то получится предпоследняя?
|
|||
14
RustamZz
01.08.08
✎
20:41
|
(12)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |