Подсчитайте количество недель по дате - PullRequest
0 голосов
/ 06 января 2010

Я пытаюсь исправить функцию, которая возвращает количество недель в данном году.

Вот как это выглядит:

Function GetWeekNo(date)
    weekOfYear = DatePart("ww", DateValue(date), vbMonday, vbFirstFourDays)

    If weekOfYear > 52 Then
       If DatePart("ww", DateValue(date) + 7, vbMonday, vbFirstFourDays) = 2 Then
           weekOfYear = 1
       End If
    End If

    GetWeekNo = weekOfYear
End Function

Когда этой функции присваивается дата 12-31-2010, возвращается 52. В 2010 году 53 недели.

Примечание: У меня нет опыта работы с классическим ASP, что бы то ни было.

1 Ответ

4 голосов
/ 06 января 2010

Похоже, это зависит от того, какая неделя считается "первой неделей года".

DatePart( "ww", "12/31/2010", vbMonday )
' returns 53
' FirstWeekOfYear parameter defaults to vbFirstJan1
' the week that contains January/01/2010
' here, its the week starting on December/28/2009

DatePart( "ww", "12/31/2010", vbMonday, vbFirstFourDays )
' returns 52
' FirstWeekOfYear parameter set to vbFirstFourDays
' the first week that has at least four days of the new year
' here, its the week starting on January/04/2010

DatePart( "ww", "12/31/2010", vbMonday, vbFirstFullWeek )
' returns 52
' FirstWeekOfYear parameter set to vbFirstFullWeek
' the first week that has full seven days of the new year
' here, again, its the week starting on January/04/2010

Решите, каково ваше определение первой недели года, затем используйте функцию DatePart соответственно.

...