Текущее время: Ср, июл 23 2025, 15:07

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Проблема с математикой по датам
СообщениеДобавлено: Чт, ноя 10 2011, 08:39 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
Коллеги, сейчас наткнулся на такую шляпу - двигаю переменную с 20111131 (31 ноября 2011 года) на один день вперед и получаю такую фигню 00010102 :shock:
Вроде все просто. Переменная типа 'дата' + день = следующий день.
С другими месяцами все работает и с концом декабря - тоже. А ноябрь - бяка.
Кто сталкивался и как лечил SAP ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с математикой по датам
СообщениеДобавлено: Чт, ноя 10 2011, 08:48 
Председатель
Председатель

Зарегистрирован:
Чт, май 10 2007, 09:15
Сообщения: 1558
31 ноября 2011 года не существует.
в ноябре 30 дней.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема с математикой по датам
СообщениеДобавлено: Чт, ноя 10 2011, 08:54 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
Фу, заметил уже. Сам дурак.
Просто, правлю чужую прогу. Нашел косяк в вормировании даты о конце месяца


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с математикой по датам
СообщениеДобавлено: Чт, ноя 10 2011, 08:56 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
Вот такая красотулька была - CONCATENATE v_year v_month '31' INTO v_sdate_t.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с математикой по датам
СообщениеДобавлено: Чт, ноя 10 2011, 09:07 
Председатель
Председатель

Зарегистрирован:
Чт, май 10 2007, 09:15
Сообщения: 1558
:)
Тут сразу вспомнился анекдот:
Америка. Клиент купил автомобиль. И оформляет документы у менеджера.
Менеджер говорит, что необходимо в документах указать дату, когда вы заберете автомобиль.
Забрать можно в конце месяца (месяц февраль).
Клиент, пишет заявление и говорит - хорошо заберу машину 31 числа.
Менеджер: Извините, но 31 числа в этом месяце нет.
Клиент: а, хорошо заберу 30 числа.
Менеджер: Извините, но 30 числа тоже нет в этом месяце.
Клиент: Удивленно, да? Хорошо, заберу 29 числа.
Менеджер: Простите, но в этом году в этом месяца и 29 числа нет.
Клиент: Как так ??? Какое же число тогда есть ?!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема с математикой по датам
СообщениеДобавлено: Чт, ноя 10 2011, 09:16 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, май 12 2008, 09:07
Сообщения: 334
Откуда: Tbilisi, GE
Пол: Мужской
C одной стороны, есть FM - SG_PS_GET_LAST_DAY_OF_MONTH

C другой стороны, пока не использовал различные FM пользовался другой последовательностью действий.
В текущей дате менял +6(2) на '15'
Прибавлял 17
Подменял в полученной дате +6(2) на '01'
Минусовал 1


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с математикой по датам
СообщениеДобавлено: Чт, ноя 10 2011, 10:11 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
Я чутка иначе делаю.
Ставлю дату в начало месяца, прибавляю 28 дней, затем опять ставлю первое число и минусую день.
В принципе, результат тот же


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с математикой по датам
СообщениеДобавлено: Чт, ноя 10 2011, 10:20 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, май 12 2008, 09:07
Сообщения: 334
Откуда: Tbilisi, GE
Пол: Мужской
Acid_Firewood написал(а):
Я чутка иначе делаю.
Ставлю дату в начало месяца, прибавляю 28 дней, затем опять ставлю первое число и минусую день.
В принципе, результат тот же

28 - может оказаться мало,
для любого из 01-02 числа в 31-денном месяце
и для 01-го числа в 30-денном месяце

прибавлять больше 28 - тоже не спасает!
гарантию дает лишь +31, но если на дворе 31.01, то прибавив 31 уже перепрыгнешь очень далеко.

вот потому и выставлял не '01', а '15'


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с математикой по датам
СообщениеДобавлено: Чт, ноя 10 2011, 11:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
мда...ФМ LAST_DAY_OF_MONTHS расскажет вам, что правильнее сразу месяц добавлять ;)

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с математикой по датам
СообщениеДобавлено: Чт, ноя 10 2011, 11:48 
Председатель
Председатель

Зарегистрирован:
Чт, май 10 2007, 09:15
Сообщения: 1558
Да, узнал много нового.
но делал всегда так.
начало месяца определял как 01 добавлял к текущему месяцу и году.
а конец. к месяцу добавлял +1 и вычитал 1.
а с добавлением 28, 15. Сильно конечно.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Проблема с математикой по датам
СообщениеДобавлено: Чт, ноя 10 2011, 12:09 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, май 12 2008, 09:07
Сообщения: 334
Откуда: Tbilisi, GE
Пол: Мужской
Ну в добрые, но очень старые времена, как-то приходилось извращаться...

Теперь проще, только в этом топике упомянуто две FM

Chirva написал:
SG_PS_GET_LAST_DAY_OF_MONTH


Удав написал(а):
LAST_DAY_OF_MONTHS


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с математикой по датам
СообщениеДобавлено: Чт, ноя 10 2011, 13:28 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Chirva написал:
Ну в добрые, но очень старые времена, как-то приходилось извращаться...

Теперь проще, только в этом топике упомянуто две FM

Chirva написал:
SG_PS_GET_LAST_DAY_OF_MONTH


Удав написал(а):
LAST_DAY_OF_MONTHS

Если я не ошибаюсь, то SG_PS_GET_LAST_DAY_OF_MONTH - это из решения для Сингапура. Индусы предпочитают сделать свой велосипед с помощью copy-paste, а не просто использовать швейцарский ;)

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с математикой по датам
СообщениеДобавлено: Чт, ноя 10 2011, 13:33 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, май 12 2008, 09:07
Сообщения: 334
Откуда: Tbilisi, GE
Пол: Мужской
Удав написал(а):
Если я не ошибаюсь, то SG_PS_GET_LAST_DAY_OF_MONTH - это из решения для Сингапура. Индусы предпочитают сделать свой велосипед с помощью copy-paste, а не просто использовать швейцарский ;)


Да, заглянул в код и полностью согласен!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с математикой по датам
СообщениеДобавлено: Чт, ноя 10 2011, 13:40 
Старший специалист
Старший специалист

Зарегистрирован:
Пт, окт 15 2010, 14:06
Сообщения: 292
Блин, забыл. 32 дня надо прибавлять.

В общем, такая кухня:
DATA
: v1 type sy-datum
, v2 type sy-datum
.
v1 = '20111110' " Сегодня
v1+6(2) = '01'.
v2 = v1 + 32.
v2+6(2) = '01'.
v2 = v2 - 1.

И у нас гарантиованно в v1 - начало месяца, а в v2 - конец


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Проблема с математикой по датам
СообщениеДобавлено: Чт, ноя 10 2011, 14:12 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Acid_Firewood написал(а):
Блин, забыл. 32 дня надо прибавлять.
..
И у нас гарантиованно в v1 - начало месяца, а в v2 - конец

Ну да. Если задать конец месяца, то что по алгоритму получится? ;)

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 24 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Ahrefs [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB