Как вы упомянули, вы вызываете веб-сервис, используя метод POST, предоставляя JSON в качестве входных данных. Вы можете создать JSON со значениями для передачи и передать его параметру P_BODY
процедуры APEX_WEB_SERVICE.MAKE_REST_REQUEST
.
Для построения JSON вы можете использовать пакет APEX_JSON
.
Надеюсь, что это работает ..
Любой месяц, который запускается с воскресенья, имеет пятницу на тринадцатом. Существует только 14 комбинаций возможное знание, какой день первый из года идет (с или без високосного года, и находившийся солнцем). Необходимо просто вычислить его однажды и закончить его. Вы только проверили бы 14*12 возможных месяцев для начинаний с, хорошо с в причине.
результирующий элемент таблицы (с 2009, 2010):
[Thursday,false] => Feb, March, Nov
[Friday,false] => Aug
для заполнения таблицы, у Вас есть универсальный месяц Jan (31) (28) февраля.. и затем выполните итерации с семенем каждого дня недели, отметив месяцы, которые запускаются с воскресенья, и также с високосного года и без. Довольно прямой, и когда-то сделанный, можно совместно использовать его с нами :)
Так как Ваш алгоритм грубой силы является, по-видимому, интуитивной каждодневной итеративной опцией, возможно, Вы не рассмотрели Алгоритм Судного дня. Это позволило бы Вам просто проверять, является ли это 13-е пятницей. Насколько я знаю, это - наиболее эффективное решение проблемы.
Вот является некоторый пример кодом PHP, который проходит довольно прямой цикл дат в диапазоне. Я изменил бы это, чтобы проверить 13-й из каждого месяца для Fridayness, вместо того, чтобы проверять каждую пятницу на 13thness, как они делают в примере.
initialize startDate to 13th of the month given in the current year
while (true) {
if (startDate.dayOfWeek == Date.FRIDAY)
break;
else
startDate.year ++;
}
return startDate.year;
Одна вещь, которую я заметил, состоит в том, что первый из месяца падает в воскресенье в течение месяцев с пятницей 13-е. Можно, вероятно, усилить это, чтобы помочь вычислить.
Это - то, как я сделал бы это:
Предположите, что год известен и является целым числом.
Цикл от 1 до 12
Создайте дату с индексом цикла, год и 13 в течение дня
Определите день недели согласно установленным алгоритмам
Если день недели, вычисленной выше, является пятницей, сделайте свою работу
Если Вы хотите запуститься с месяца и года (необходимо принять своего рода год), алгоритм становится
Предположите, что год известен и целое число
Предположите, что месяц известен и является целым числом
Цикл
Создайте дату с индексом цикла как год, известная переменная месяца, и 13 в течение дня
Определите день недели согласно установленным алгоритмам
Если день недели вычисляет выше, пятница, дата возвращения, еще
Еще увеличьте год 1