Номер Недели В Году (iso 8601)

nvyush

Lotus team
22.04.2009
2 317
0
#1
Иногда бывает нужно определить номер недели в году. По ISO 8601 первая неделя не та, что начинается с первого января, а та, что содержит первый четверг года.
На формулах (DateValue - поле/значение интересующей даты):
Код:
_tmpDate := @Date(@Year(@Adjust(DateValue; 0; 0; - @Weekday(@Adjust(DateValue; 0; 0; -1; 0; 0; 0)) + 4; 0; 0; 0)); 1; 3);
@Integer(((DateValue -_tmpDate) / 86400 + @Weekday(_tmpDate) + 5) / 7);
На LS:
Код:
Function WeekNumber(dt As Variant) As Integer
Dim tmpDate As Variant
If DataType(dt) <> 7 Then
WeekNumber = 0
Else
tmpDate = DateSerial(Year(dt - Weekday(dt - 1) + 4), 1, 3)
WeekNumber = Int((dt - tmpDate + Weekday(tmpDate) + 5) / 7)
End If
End Function
Формула взята отсюда