Текущее время: Вт, июл 22 2025, 20:25

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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