Параметры: Вы верите в это? Этот модуль можно написать в десятки раз быстрее, чем любой другой метод! Параметры следующие:
1: Какой день является базовым?
2: (Необязательно) Какой день недели вы ищете? Если не указано, значением по умолчанию является суббота.
3: (Необязательно) Следует ли искать вперед (прошлое) или назад (будущее)?
Если не указано, значением по умолчанию является поиск в будущем (будущем).
Программный код
PublicFunctionSpecificWeekday(ByValDAsDate,OptionalByValWhatDayAsVbDayOfWeek=vbSaturday,OptionalGetNextAsBoolean=True)AsDate
Конкретный день недели=(((D-WhatDay GetNext)/7)-GetNext)*7 WhatDay
Конечнаяфункция
Может быть, вы хотите знать, почему программа написана именно так?
Вы знали? В VB базовым днем (0-м днем) всех функций даты является 30 декабря 1899 г. (суббота), а первым днем является 31 декабря 1899 г. (воскресенье), поэтому алгоритм функции WeekDay в VB фактически равен (Date-1) Мод7 1.
возвращаемое значение
дата
Пример:
Я хотел бы знать, какие из следующих дней?
Прошлый понедельник: Определенный день недели (Now,vbMonday,False)
В следующую субботу: конкретный будний день (сейчас)
В следующую пятницу, 9 сентября 2000 г.: SpecificWeekday("09.09.2000",vbFriday)->