Вычисление будущих случаев пятницы 13-е

Как вы упомянули, вы вызываете веб-сервис, используя метод POST, предоставляя JSON в качестве входных данных. Вы можете создать JSON со значениями для передачи и передать его параметру P_BODY процедуры APEX_WEB_SERVICE.MAKE_REST_REQUEST.

Для построения JSON вы можете использовать пакет APEX_JSON.

Надеюсь, что это работает ..

7
задан Cœur 30 April 2017 в 13:07
поделиться

6 ответов

Любой месяц, который запускается с воскресенья, имеет пятницу на тринадцатом. Существует только 14 комбинаций возможное знание, какой день первый из года идет (с или без високосного года, и находившийся солнцем). Необходимо просто вычислить его однажды и закончить его. Вы только проверили бы 14*12 возможных месяцев для начинаний с, хорошо с в причине.

результирующий элемент таблицы (с 2009, 2010):

[Thursday,false] => Feb, March, Nov
[Friday,false] => Aug

для заполнения таблицы, у Вас есть универсальный месяц Jan (31) (28) февраля.. и затем выполните итерации с семенем каждого дня недели, отметив месяцы, которые запускаются с воскресенья, и также с високосного года и без. Довольно прямой, и когда-то сделанный, можно совместно использовать его с нами :)

10
ответ дан 6 December 2019 в 06:38
поделиться

Так как Ваш алгоритм грубой силы является, по-видимому, интуитивной каждодневной итеративной опцией, возможно, Вы не рассмотрели Алгоритм Судного дня. Это позволило бы Вам просто проверять, является ли это 13-е пятницей. Насколько я знаю, это - наиболее эффективное решение проблемы.

10
ответ дан 6 December 2019 в 06:38
поделиться

Вот является некоторый пример кодом PHP, который проходит довольно прямой цикл дат в диапазоне. Я изменил бы это, чтобы проверить 13-й из каждого месяца для Fridayness, вместо того, чтобы проверять каждую пятницу на 13thness, как они делают в примере.

3
ответ дан 6 December 2019 в 06:38
поделиться
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;
1
ответ дан 6 December 2019 в 06:38
поделиться

Одна вещь, которую я заметил, состоит в том, что первый из месяца падает в воскресенье в течение месяцев с пятницей 13-е. Можно, вероятно, усилить это, чтобы помочь вычислить.

2
ответ дан 6 December 2019 в 06:38
поделиться

Это - то, как я сделал бы это:

  • Предположите, что год известен и является целым числом.

  • Цикл от 1 до 12

    • Создайте дату с индексом цикла, год и 13 в течение дня

      • Определите день недели согласно установленным алгоритмам

      • Если день недели, вычисленной выше, является пятницей, сделайте свою работу

Если Вы хотите запуститься с месяца и года (необходимо принять своего рода год), алгоритм становится

  • Предположите, что год известен и целое число

  • Предположите, что месяц известен и является целым числом

  • Цикл

    • Создайте дату с индексом цикла как год, известная переменная месяца, и 13 в течение дня

    • Определите день недели согласно установленным алгоритмам

    • Если день недели вычисляет выше, пятница, дата возвращения, еще

    • Еще увеличьте год 1

1
ответ дан 6 December 2019 в 06:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: