Как установить текущее поле даты на предыдущее воскресенье в oplesoft

Я новичок в Peoplesoft и просто пытаюсь установить текущее поле даты на предыдущее воскресенье, и для этого я использовал функцию 'weekday', но она возвращает целочисленное значение. Как я могу преобразовать возвращенное целочисленное значение в дату? Может кто-нибудь помочь мне с этим вопросом? Заранее спасибо.

3 ответа

Предполагая, что вы хотите последнее воскресенье, например, сегодня 30.06.2015, тогда как предыдущее воскресенье 28.06.2015.

чтобы сделать это вы можете использовать

Local date &dt = %Date;

Local number &num = Weekday(&dt);
WinMessage(Date(&dt - (&num - 1)), 0);

Функция дня недели возвращает числовое значение от 1 (воскресенье) до 7 (суббота). Так что если вы знаете сегодняшнюю дату (%date), тогда получите из нее день недели.

Если вы хотите получить другую дату, отличную от текущей, используйте DateValue(date_str), где date_srt - строковое значение нужной вам даты.

Другой способ сделать это

SQLExec(select To_date(:1,'DD/MM/YYYY') - (To_Char(To_date(:1,'DD/MM/YYYY'), 'D') -1) from dual, &dtValue, &dtSunday);

заменить &dtValue на дату, которую вы хотите

посетите http://peoplesoftdotnet.blogspot.com.au/ для получения дополнительных советов

Я предполагаю, что вы знаете, сколько дней назад было последнее воскресенье, в этом случае вы можете использовать эту функцию

AddToDate(date, num_years, num_months, num_days)

это вернет дату

пример

AddToDate(Date(),0,0,-3)при условии, что воскресенье было за 3 дня до сегодняшнего дня

Вот код:

% Date используется для получения SYSDATE.
Я добавил несколько комментариев, чтобы проверить результат.

/* Code Begins Here */

Local date &dtSunday;

Local integer &i;

MessageBox(0, "", 0, 0, "SYSDATE - " | %Date);

MessageBox(0, "", 0, 0, "Previous Sunday - 28-June-2015");

&i = Weekday(%Date);

&dtSunday = AddToDate(%Date, 0, 0, - (&i - 1));

MessageBox(0, "", 0, 0, "Computed Sunday - " | &dtSunday);

/* Code Ends Here */

Вот результат:

SYSDATE - 2015-07-02 (0,0)

Предыдущее воскресенье - 28 июня 2015 года (0,0)

Расчетное воскресенье - 2015-06-28 (0,0)

Другие вопросы по тегам