Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 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 nDate
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...

Без комментариев...


Sub GetWeekends(ByVal Year As Long, ByVal l As ListBox)
  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
Блин, задолбали эти различия локалей...

Sub GetWeekends(ByVal Year As Long, ByVal l As ListBox)
  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
Ограмное пасиб, всё работает +)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам