У меня есть решение, хотя оно применимо только при определенных обстоятельствах. Ваш случай может или не может быть правильным для этого.
Создайте таблицу с именем ALMANAC с одной строкой для каждой действительной даты. Вы можете заполнить его десятью годами действительных дат только 3653 строками, более или менее. Даже если вы пройдете сто лет, это всего лишь 36 525 рядов, не слишком больших по сегодняшним меркам.
Вы можете добавить странные атрибуты, специфичные для компании, в эту таблицу, если это полезно. Это такие атрибуты, как то, является ли дата выходным днем для конкретной компании или нет, и к какой финансовой неделе, финансовому месяцу, финансовому кварталу и финансовому году относится дата.
Вам нужно будет написать программу для заполнения этой таблицы, и в эту программу должны быть встроены правила календаря вашей компании, если вы выберете дополнительные атрибуты.
Затем вы можете использовать эту таблицу, как если бы вы использовали любую таблицу проверки кода. Вы также можете использовать его, чтобы сделать изощренные критерии отчетности, основанные на календаре, абсолютно тривиальными для реализации.
Это только хорошая идея, если ваши даты ограничены ограниченным промежутком времени, например десять лет или, может быть, даже сто лет. Но иногда это действительно может сэкономить время! Я иногда использовал эту технику, чтобы сделать мою базу данных независимой от функций календаря одного поставщика.