Учитывая дату ввода, как я могу определить, выпадает ли день на выходные?
Как определить, выпадет ли дата в выходные?
Ответ 1
Существует функция Weekday, которая принимает дату в качестве аргумента и возвращает день (1, 2, 3 и т.д.).
Возвращаемые значения:
vbSunday (1)
vbMonday (2)
vbTuesday (3)
vbWednesday (4)
vbThursday (5)
vbFriday (6)
vbSaturday (7)
Предполагая, что выходные дни - суббота и воскресенье, функция будет выглядеть так:
Public Function IsWeekend(InputDate As Date) As Boolean
Select Case Weekday(InputDate)
Case vbSaturday, vbSunday
IsWeekend = True
Case Else
IsWeekend = False
End Select
End Function
Ответ 2
Это самый прямой способ определить, выпадет ли MyDate
в выходные:
MsgBox Weekday(MyDate, vbMonday) > 5
Функция Weekday() имеет необязательный второй параметр, который сообщает ему, в какой день недели начинается неделя. Функция Weekday() возвращает целое число от 1 до 7.
Я проинструктировал его начать неделю в понедельник и поэтому СУББОТА будет 6, а ВОСКРЕСЕНЬЕ будет 7.
Ответ 3
Или вы можете использовать это:
OR(MOD(WEEKDAY(cell), 7)=0, MOD(WEEKDAY(cell), 7)=1)
или
MOD(WEEKDAY(cell), 7) < 2
как формулу.
так как 1 - воскресенье и 0 - суббота
Ответ 4
Формула для преобразования даты в неделю
Selection.FormulaR1C1 = "= TEXT (WEEKDAY (R7C" + CStr (i) + ", 1)," "ddd" ")"
это вернет день
например: - если ввод 02-май-2013 то он вернет Thu → (четверг) здесь переменная я представляет собой другой столбец