Страница: 1 |
Страница: 1 |
Вопрос: Дни недели
Добавлено: 26.09.05 21:29
Автор вопроса: -=Fenix=-
Как мона из текущего или следующего года выбрать все Субботы и Воскресенья, ну получить их дату
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #1
Добавлено: 26.09.05 22:18
Взять первый день года.
Посмотреть, какой это день недели. Посмотрев, узнать, каково расстояние в днях от него до субботы или воскресенья.
Узнав, прибавить это количество дней к первому дню года.
После чего прибавлять 7, записывая каждый результат прибавления, пока не будет достигнут следующий год...
Номер ответа: 2
Автор ответа:
-=Fenix=-
Вопросов: 33
Ответов: 81
Профиль | | #2
Добавлено: 29.09.05 18:50
Если мона, бросте кодик, а тоя у мен чё-то неполучается :/
Номер ответа: 3
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #3
Добавлено: 29.09.05 19:37
Брось свой кодик, посмотрим.
Или хоцца всё, сразу и без усилий?..
Номер ответа: 4
Автор ответа:
-=Fenix=-
Вопросов: 33
Ответов: 81
Профиль | | #4
Добавлено: 09.10.05 17:13
Dim d As Integer
Dim m As Integer
Dim y As Integer
On Error Resume Next
Do While d = 32
nDate = d & "." & m & "." & y
y = Format(Now, YYYY)
If d = 31 Then
m = m + 1
d = 1
End If
If Format(nDate.Text, "w" = 7 Then List1.AddItem nDate
If Format(nDate.Text, "w" = 1 Then List1.AddItem nDate
d = d + 1
If nDate = "31.12." & y Then Exit Sub
Loop
End Sub
чё то больше в голову не лезет
Номер ответа: 5
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #5
Добавлено: 09.10.05 21:31
OMG...
Без комментариев...
Dim d As Date
d = DateSerial(Year, 1, 1)
Select Case Weekday(d, vbMonday)
Case vbSaturday
Case vbSunday
l.AddItem Format$(d, "dd.mm.yyyy"
d = d + 6
Case Else
d = d + (vbSaturday - Weekday(d, vbMonday) - 1)
End Select
Do
l.AddItem Format$(d, "dd.mm.yyyy (w)"
l.AddItem Format$(d + 1, "dd.mm.yyyy (w)"
d = d + 7
Loop While DateTime.Year(d) = Year
End Sub
Номер ответа: 6
Автор ответа:
GSerg
Вопросов: 0
Ответов: 1876
Профиль | | #6
Добавлено: 09.10.05 21:49
Блин, задолбали эти различия локалей...
Dim d As Date
d = DateSerial(Year, 1, 1)
Select Case Weekday(d)
Case vbSaturday
Case vbSunday
l.AddItem Format$(d, "dd.mm.yyyy"
d = d + 6
Case Else
d = d + (vbSaturday - Weekday(d))
End Select
Do
l.AddItem Format$(d, "dd.mm.yyyy"
l.AddItem Format$(d + 1, "dd.mm.yyyy"
d = d + 7
Loop While DateTime.Year(d) = Year
End Sub
Номер ответа: 7
Автор ответа:
-=Fenix=-
Вопросов: 33
Ответов: 81
Профиль | | #7
Добавлено: 10.10.05 17:53
Ограмное пасиб, всё работает +)