Как создать диапазон дат заголовка в неделю в Flexgrid

Помогите мне разобраться с проблемой кодирования Visual Basic с помощью "C1 FlexGrid".

Как получить диапазон дат, который также будет показывать номер недели?

Например:

   January 2003
 S  M Tu  W Th  F  S
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

я хотел бы показать

01/01/03 - 04/01/03 as "week 1" of January 03
01/05/03 - 01/11/03 as "week 2" of January 03
01/12/03 - 18/01/03 as "week 3" in January 03 ... up "week 5", etc. ..

Есть ли способ сделать это?


person Community    schedule 13.07.2013    source источник


Ответы (1)


Не испытано. Возможно улучшение. Внесите изменения в код в соответствии с вашими требованиями.

Public Function DateOfFirstDayofWeek(intCurrentDayofWeek As Integer, WhichDate As Date) As Date
    DateOfFirstDayofWeek = DateAdd("D", intCurrentDayofWeek * (-1) + 2, WhichDate)
End Function

Function dhFirstDayInMonth(dtmDate As Date) As Date
    dhFirstDayInMonth = DateSerial(year(dtmDate), Month(dtmDate), 1)
End Function

Function dhLastDayInMonth(dtmDate As Date) As Date
    dhLastDayInMonth = DateSerial(year(dtmDate), Month(dtmDate) + 1, 0)
End Function

Private Sub getWeekRange_Click()
Dim startDate As Date
Dim endDate As Date
Dim tmpDate  As Date
Dim dateOfMonth As Date
Dim myDate As Date

dateOfMonth = CDate("01/02/2013") 
endDate = dhLastDayInMonth(dateOfMonth)
startDate = dhFirstDayInMonth(dateOfMonth)
tmpDate = startDate

While tmpDate < endDate
    myDate = DateOfFirstDayofWeek(Weekday(tmpDate, vbSunday), tmpDate) ''Assuming Week starts with Sunday
    tmpDate = DateAdd("d", 6, myDate)
    If myDate < startDate Then
        myDate = startDate
    ElseIf tmpDate > endDate Then
        tmpDate = endDate
    End If
    Debug.Print myDate & "      " & tmpDate 'This Prints the Start date and End date of every week
Wend
End Sub
person rags    schedule 18.07.2013
comment
@it.bayu, вам нужно принять ответы, которые вам помогли. Ответ можно принять, щелкнув галочку под элементами управления голосованием вверх/вниз для ответа. - person rags; 11.12.2013