Автор Тема: Функции работы с датами  (Прочитано 96674 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 758
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Функции работы с датами (FIMA_DAYS_AND_MONTHS_AND_YEARS)
« Ответ #25 : Июнь 18, 2014, 12:01:01 pm »
FIMA_DAYS_AND_MONTHS_AND_YEARS - Рассчитывает количество дней, месяцев и лет между двумя датами. Пару параметров данной функции я несколько не понял, зачем... точнее когда их можно применить. Высокосный год вроде как знает. Дату возвращает на день меньше не включая последний день периода, т.е. между 01 и 10 числом месяца будет возвращено 9 дней. Интересный флажок  I_FLG_SEPARATE. Если в нем пустое значение, то  для даты например 01.01.2014 по 10.01.2014 будет возвращено 9 дней, 1 месяц и 1 год, если же задать любое значение например "-" или "Х" то будет взращено 9 дней, 0 месяцев и 0 лет. Смысловой нагрузки I_KEY_DAY_FROM и I_KEY_DAY_TO не понял немного. А так вполне рабочая функция.

Код: You are not allowed to view links. Register or Login
DATA: l_days LIKE vtbbewe-atage,
      l_months LIKE vtbbewe-atage,
      l_years LIKE vtbbewe-atage.

CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'
  EXPORTING
    i_date_from    = '20140101'
*   I_KEY_DAY_FROM =
    i_date_to      = '20150531'
*   I_KEY_DAY_TO   =
*   I_FLG_SEPARATE = ' '
  IMPORTING
    e_days         = l_days
    e_months       = l_months
    e_years        = l_years.
.
WRITE: / l_days, l_months, l_years.

Оффлайн mvs87

  • ABAP
  • Newbie
  • *
  • Сообщений: 2
  • Репутация: +2/-0
  • Пол: Мужской
  • Born with SAP skils
  • YearsYearsYearsYearsYears
Re: Функции работы с датами
« Ответ #26 : Июнь 18, 2015, 12:00:14 pm »
Спасибо всем кто накидал функции. Пригодились.

Понадобились дата время в коротком текстовом виде 15.01.14 08:00 - 15.01.14 08:00
Набросал свою функцию:

Код: You are not allowed to view links. Register or Login
FUNCTION ZZ_MVS_DATE_TIME_TO_SHORT.
*"----------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     REFERENCE(DATE_FROM) TYPE  SYDATUM
*"     REFERENCE(TIME_FROM) TYPE  SYUZEIT
*"     REFERENCE(DATE_TO) TYPE  SYDATUM OPTIONAL
*"     REFERENCE(TIME_TO) TYPE  SYUZEIT OPTIONAL
*"  EXPORTING
*"     REFERENCE(SHORT_DATE_TIME) TYPE  CHAR31
*"----------------------------------------------------------------------

DATA: L_TDAT6(8), I_TIME4(5), PART1(14), PART2(14).

CHECK DATE_FROM NE SPACE.

CLEAR: SHORT_DATE_TIME, L_TDAT6, I_TIME4.


CALL FUNCTION 'DATUMSAUFBEREITUNG'
  EXPORTING FLAGM = 'X' FLAGW = 'X' IDATE = DATE_FROM
  IMPORTING TDAT6 = L_TDAT6 .

  CONCATENATE TIME_FROM(2) ':' TIME_FROM+2(2)
         INTO I_TIME4.

  CONCATENATE L_TDAT6 I_TIME4
         INTO SHORT_DATE_TIME
 SEPARATED BY SPACE.

CLEAR: L_TDAT6, I_TIME4.

IF DATE_TO ne 0.
  CALL FUNCTION 'DATUMSAUFBEREITUNG'
    EXPORTING FLAGM = 'X' FLAGW = 'X' IDATE = DATE_TO
    IMPORTING TDAT6 = L_TDAT6 .

  CONCATENATE TIME_FROM(2) ':' TIME_FROM+2(2)
         INTO I_TIME4.

  CONCATENATE SHORT_DATE_TIME '-' L_TDAT6 I_TIME4
         INTO SHORT_DATE_TIME
 SEPARATED BY SPACE.
ENDIF.

ENDFUNCTION.
Высшая степень уважения к клиенту - это разработать программу не так как он хочет, так как следует!

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 758
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Функции работы с датами FIRST_AND_LAST_DAY_IN_YEAR_GET
« Ответ #27 : Октябрь 17, 2018, 01:29:00 pm »
FIRST_AND_LAST_DAY_IN_YEAR_GET - Для года и варианта финансового года возвращает начальную и конечную дату периода. В наших реалиях конечно, где вариант обычно К4 значения эта функция не имеет, но если делается что-то универсальное, то конечно на вариант года обращать внимание стоит.


Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 758
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Функции работы с датами ( J_3RF_DATE )
« Ответ #28 : Февраль 03, 2020, 02:23:59 pm »
J_3RF_DATE - Возвращает строку даты в текстовом виде с правильным склонением месяца.

Код: You are not allowed to view links. Register or Login
DATA f_date  TYPE bkpf-bldat.
DATA f_day   TYPE char2.
DATA f_month TYPE char10.
DATA f_year  TYPE char4.

CALL FUNCTION 'J_3RF_DATE'
  EXPORTING
    f_date  = sy-datum
  IMPORTING
    f_day   = f_day
    f_month = f_month
    f_year  = f_year.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 758
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Функции работы с датами
« Ответ #29 : Март 02, 2020, 05:29:54 pm »
You are not allowed to view links. Register or Login
В функции BCA_US_DATES_CALC_DATE  нашел только типы 1-3. Выкрутился типом 3 для квартала и года с шагом 3 и 12 соответственно.- Небольшой
Ну как бы ранее уже было тут же: You are not allowed to view links. Register or Login

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 758
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Функции работы с датами ( SLIM_GET_QUARTERLY_PERIODS )
« Ответ #30 : Март 02, 2020, 05:41:29 pm »
SLIM_GET_QUARTERLY_PERIODS - Позволяет получить начало и конец периода для каждого квартала в виде диапазона RANGES, иногда полезно для быстрого получения начала и конца квартала.

Код: You are not allowed to view links. Register or Login
    DATA: lr_periods       TYPE slim_s_date_range.

    CALL FUNCTION 'SLIM_GET_QUARTERLY_PERIODS'
      EXPORTING
        slim_meas_date = sy-datum
      TABLES
        periods        = lr_periods.
Из интересного эффекта,  данный модуль почему-то возвращает кварталы предыдущего года от переданной даты. Ну так вот его написали.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 758
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Функции работы с датами ( ISH_QUARTER_GET )
« Ответ #31 : Март 02, 2020, 05:47:39 pm »
ISH_QUARTER_GET - Возвращает дату начала и конца квартала для даты которая передана в функцию.