Как сгенерировать RRULE (любой RRULE, независимо от того, насколько он оптимален) из ряда дат - или, если это не удастся, использовать даты, определенные RRULE, легко совместимым способом со списками дат.
Другими словами, как справиться с произвольными списками дат, которые коллективно решили современная компьютерная наука, невозможно преобразовать в RRULE, одновременно поддерживая подход, который каждый говорит, что он принимает , RRULE .
Тем не менее, получение RRULE из списков дат - это, очевидно, работа для компьютеров, и мне трудно поверить, что это не то, чем вы должны заниматься на третьем курсе бакалавриата по информатике.
Да, я видел этот ответ : «невозможно знать точное правило, которое породило коллекцию дат»
Теперь, я надеюсь, что все садятся, потому что это происходитофигительно, но существует серия повторяющихся дат, которые не были сгенерированы RRULE в первую очередь .
(Не просто шутить;Я сам был удивлен, что библиотечная система в значительном американском городе не будет использовать RRULE для внутреннего использования, но если быть очень конкретным в реальной потребности в этой возможности, она этого не делает, и мы завершим пример из нее.)
Итак, чтобы быть очень ясным, я не ищу «лучшего» RRULE для последовательности datetime, который в любом случае был бы оценочным.Я ищу любой действительный RRULE, автоматически созданный из списка повторяющихся дат.Например: хорошим началом было бы проверить, ежедневно ли это, и, в случае неудачи, создать самый уродливый RRULE, известный человеку или машине, это всего лишь ряд исключений.
И, возможно, это еще один способ подойти к этому: предложенияили примеры того, когда люди используют виджет RRULE для предоставления серии событий, которые не следуют хорошим повторяющимся правилам.Не отступаете ли вы от простого добавления дополнительных дат?
В любом случае, вот обещанный в реальной жизни пример массива дат, с которым придется регулярно иметь дело, которые не являются производными от RRULE сами по себе, но, вероятно, могутбеспорядочно уменьшится до одного:
"future_dates": [
{
"event_id": 4998685,
"start": "2019-10-01T10:30:00-04:00"
},
{
"event_id": 4998686,
"start": "2019-10-08T10:30:00-04:00"
},
{
"event_id": 4998687,
"start": "2019-10-15T10:30:00-04:00"
},
{
"event_id": 4998688,
"start": "2019-10-22T10:30:00-04:00"
},
{
"event_id": 4998689,
"start": "2019-10-29T10:30:00-04:00"
},
{
"event_id": 4998690,
"start": "2019-11-05T10:30:00-05:00"
},
{
"event_id": 4998691,
"start": "2019-11-12T10:30:00-05:00"
},
{
"event_id": 4998692,
"start": "2019-11-19T10:30:00-05:00"
},
{
"event_id": 4998693,
"start": "2019-11-26T10:30:00-05:00"
},
{
"event_id": 4998694,
"start": "2019-12-03T10:30:00-05:00"
},
{
"event_id": 4998695,
"start": "2019-12-10T10:30:00-05:00"
},
{
"event_id": 4998696,
"start": "2019-12-17T10:30:00-05:00"
},
{
"event_id": 4998698,
"start": "2019-12-31T10:30:00-05:00"
},
{
"event_id": 4998699,
"start": "2020-01-07T10:30:00-05:00"
},
{
"event_id": 4998700,
"start": "2020-01-14T10:30:00-05:00"
},
{
"event_id": 4998701,
"start": "2020-01-21T10:30:00-05:00"
},
{
"event_id": 4998702,
"start": "2020-01-28T10:30:00-05:00"
},
{
"event_id": 4998703,
"start": "2020-02-04T10:30:00-05:00"
},
{
"event_id": 4998704,
"start": "2020-02-11T10:30:00-05:00"
},
{
"event_id": 4998705,
"start": "2020-02-18T10:30:00-05:00"
},
{
"event_id": 4998706,
"start": "2020-02-25T10:30:00-05:00"
},
{
"event_id": 4998707,
"start": "2020-03-03T10:30:00-05:00"
},
{
"event_id": 4998708,
"start": "2020-03-10T10:30:00-04:00"
},
{
"event_id": 4998709,
"start": "2020-03-17T10:30:00-04:00"
},
{
"event_id": 4998710,
"start": "2020-03-24T10:30:00-04:00"
},
{
"event_id": 4998711,
"start": "2020-03-31T10:30:00-04:00"
},
{
"event_id": 4998712,
"start": "2020-04-07T10:30:00-04:00"
},
{
"event_id": 4998713,
"start": "2020-04-14T10:30:00-04:00"
},
{
"event_id": 4998714,
"start": "2020-04-21T10:30:00-04:00"
},
{
"event_id": 4998715,
"start": "2020-04-28T10:30:00-04:00"
},
{
"event_id": 4998716,
"start": "2020-05-05T10:30:00-04:00"
},
{
"event_id": 4998717,
"start": "2020-05-12T10:30:00-04:00"
},
{
"event_id": 4998718,
"start": "2020-05-19T10:30:00-04:00"
},
{
"event_id": 4998719,
"start": "2020-05-26T10:30:00-04:00"
},
{
"event_id": 4998720,
"start": "2020-06-02T10:30:00-04:00"
},
{
"event_id": 4998721,
"start": "2020-06-09T10:30:00-04:00"
},
{
"event_id": 4998722,
"start": "2020-06-16T10:30:00-04:00"
},
{
"event_id": 4998723,
"start": "2020-06-23T10:30:00-04:00"
},
{
"event_id": 4998724,
"start": "2020-06-30T10:30:00-04:00"
},
{
"event_id": 4998725,
"start": "2020-07-07T10:30:00-04:00"
},
{
"event_id": 4998726,
"start": "2020-07-14T10:30:00-04:00"
},
{
"event_id": 4998727,
"start": "2020-07-21T10:30:00-04:00"
},
{
"event_id": 4998728,
"start": "2020-07-28T10:30:00-04:00"
},
{
"event_id": 4998729,
"start": "2020-08-04T10:30:00-04:00"
},
{
"event_id": 4998730,
"start": "2020-08-11T10:30:00-04:00"
},
{
"event_id": 4998731,
"start": "2020-08-18T10:30:00-04:00"
},
{
"event_id": 4998732,
"start": "2020-08-25T10:30:00-04:00"
},
{
"event_id": 4998733,
"start": "2020-09-01T10:30:00-04:00"
},
{
"event_id": 4998734,
"start": "2020-09-08T10:30:00-04:00"
},
{
"event_id": 4998735,
"start": "2020-09-15T10:30:00-04:00"
},
{
"event_id": 4998736,
"start": "2020-09-22T10:30:00-04:00"
},
{
"event_id": 4998737,
"start": "2020-09-29T10:30:00-04:00"
},
{
"event_id": 4998738,
"start": "2020-10-06T10:30:00-04:00"
},
{
"event_id": 4998739,
"start": "2020-10-13T10:30:00-04:00"
},
{
"event_id": 4998740,
"start": "2020-10-20T10:30:00-04:00"
},
{
"event_id": 4998741,
"start": "2020-10-27T10:30:00-04:00"
},
{
"event_id": 4998742,
"start": "2020-11-03T10:30:00-05:00"
},
{
"event_id": 4998743,
"start": "2020-11-10T10:30:00-05:00"
},
{
"event_id": 4998744,
"start": "2020-11-17T10:30:00-05:00"
},
{
"event_id": 4998745,
"start": "2020-11-24T10:30:00-05:00"
},
{
"event_id": 4998746,
"start": "2020-12-01T10:30:00-05:00"
},
{
"event_id": 4998747,
"start": "2020-12-08T10:30:00-05:00"
},
{
"event_id": 4998748,
"start": "2020-12-15T10:30:00-05:00"
},
{
"event_id": 4998749,
"start": "2020-12-22T10:30:00-05:00"
},
{
"event_id": 4998750,
"start": "2020-12-29T10:30:00-05:00"
},
{
"event_id": 4998751,
"start": "2021-01-05T10:30:00-05:00"
},
{
"event_id": 4998752,
"start": "2021-01-12T10:30:00-05:00"
}
]