Интервал дат

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Интервал дат

Сообщение Sirik » 16.03.2012 (Пт) 12:01

Надо по номеру недели получить массив дней, которые в нее входят.
Например: номер недели 11, получаем от 12 марта до 18.

Номер недели получаю так:
Код: Выделить всё
numberWeek = DatePart( "Ww", Date, vbMonday, vbFirstFourDays)

А вот в какую строну капать на счет поставленной задачи не знаю
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Интервал дат

Сообщение alibek » 16.03.2012 (Пт) 13:33

Зачем тебе номер недели?
Date - Weekday() — это будет понедельник.
Lasciate ogni speranza, voi ch'entrate.

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Интервал дат

Сообщение Sirik » 16.03.2012 (Пт) 14:14

мне нужно сделать интерфейс такого типа: Номер недели -> Интервал: 11 -> 12.03.12 - 18.03.12
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки

Sam777e
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 157
Зарегистрирован: 16.09.2010 (Чт) 4:33

Re: Интервал дат

Сообщение Sam777e » 16.03.2012 (Пт) 19:37

Alibek писал(а):Date - Weekday

Отсюда и надо плясать

Sirik писал(а):интерфейс такого типа: Номер недели -> Интервал: 11 -> 12.03.12 - 18.03.12


В такой постановке задача не очень корректна; есть зависимость еще и от года.

А вот если исходить просто из даты, то

Код: Выделить всё
Public Sub Try()
  Dim numberWeek_FirstFourDays As Variant, numberWeek_FirstJan1 As Variant
  Dim theDay1 As Variant, theDay2 As Variant
  Dim D As Date
  Dim firstDate As Date, lastDate As Date
 
  Debug.Print "numberWeek_FirstJan1 numberWeek_FirstFourDays theDay1 theDay2"
 
  D = Date
  numberWeek_FirstJan1 = DatePart("Ww", D, vbMonday, vbFirstJan1)
  numberWeek_FirstFourDays = DatePart("Ww", D, vbMonday, vbFirstFourDays)
  theDay1 = DatePart("d", D, vbMonday, vbFirstJan1)
  theDay2 = DatePart("d", D, vbMonday, vbFirstFourDays)
  Debug.Print D, numberWeek_FirstJan1, numberWeek_FirstFourDays, theDay1, theDay2
 
  D = DateSerial(2011, 1, 1)
  numberWeek_FirstJan1 = DatePart("Ww", D, vbMonday, vbFirstJan1)
  numberWeek_FirstFourDays = DatePart("Ww", D, vbMonday, vbFirstFourDays)
  theDay1 = DatePart("d", D, vbMonday, vbFirstJan1)
  theDay2 = DatePart("d", D, vbMonday, vbFirstFourDays)
  Debug.Print D, numberWeek_FirstJan1, numberWeek_FirstFourDays, theDay1, theDay2
  Debug.Print
 
  firstDate = Date - Weekday(Date, vbMonday) + 1
  lastDate = firstDate + 6
  Debug.Print firstDate; Format(firstDate, "dddd, mmm d yyyy", vbMonday, vbFirstFourDays)
  Debug.Print lastDate; Format(lastDate, "dddd, mmm d yyyy", vbMonday, vbFirstFourDays)
End Sub


Output:

' numberWeek_FirstJan1 numberWeek_FirstFourDays theDay1 theDay2
' 3/16/2012 12 11 16 16
' 1/1/2011 1 52 1 1
'
' 3/12/2012 Monday, Mar 12 2012
' 3/18/2012 Sunday, Mar 18 2012



Над кодом прошу не смеяться - я быдлокодер
Здоровья и удачи

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Re: Интервал дат

Сообщение Sirik » 17.03.2012 (Сб) 8:46

я и не говорил что от года не надо плясать, я просто пример привел
спасибо, пример то что надо
Состояний же любви — десять: любовный взгляд, привязанность в мыслях, рождение желания, бессонница, исхудание, отвращение к предметам восприятия, утрата стыда, безумие, потеря сознания и смерть — вот их признаки


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Google-бот и гости: 65

    TopList