Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.24;
Скачать: CL | DM;

Вниз

Алгоритм вычисления номера недели   Найти похожие ветки 

 
CTAPbIi   (2003-04-13 10:59) [0]

Если кто-то встречал, дайте, плз, ссылочку на алгоритм вычисления номера недели по дате


 
Song ©   (2003-04-13 11:18) [1]

Не надо никакого алгоритма. Всё есть.
WeekOf()


 
CTAPbIi   (2003-04-13 11:41) [2]

У меня D4, а там ее нет!!!


 
Song ©   (2003-04-13 12:08) [3]

Из исходников DateUtils.dcu:

function WeekOf(const AValue: TDateTime): Word;
begin
Result := WeekOfTheYear(AValue);
end;

function WeekOfTheYear(const AValue: TDateTime): Word;
var
LYear, LDOW: Word;
begin
DecodeDateWeek(AValue, LYear, Result, LDOW);
end;

procedure DecodeDateWeek(const AValue: TDateTime; out AYear, AWeekOfYear,
ADayOfWeek: Word);
var
LDayOfYear: Integer;
LMonth, LDay: Word;
LStart: TDateTime;
LStartDayOfWeek, LEndDayOfWeek: Word;
LLeap: Boolean;
begin
LLeap := DecodeDateFully(AValue, AYear, LMonth, LDay, ADayOfWeek);
ADayOfWeek := CDayMap[ADayOfWeek];
LStart := EncodeDate(AYear, 1, 1);
LDayOfYear := Trunc(AValue - LStart + 1);
LStartDayOfWeek := DayOfTheWeek(LStart);
if LStartDayOfWeek in [DayFriday, DaySaturday, DaySunday] then
Dec(LDayOfYear, 8 - LStartDayOfWeek)
else
Inc(LDayOfYear, LStartDayOfWeek - 1);
if LDayOfYear <= 0 then
DecodeDateWeek(LStart - 1, AYear, AWeekOfYear, LDay)
else
begin
AWeekOfYear := LDayOfYear div 7;
if LDayOfYear mod 7 <> 0 then
Inc(AWeekOfYear);
if AWeekOfYear > 52 then
begin
LEndDayOfWeek := LStartDayOfWeek;
if LLeap then
begin
if LEndDayOfWeek = DaySunday then
LEndDayOfWeek := DayMonday
else
Inc(LEndDayOfWeek);
end;
if LEndDayOfWeek in [DayMonday, DayTuesday, DayWednesday] then
begin
Inc(AYear);
AWeekOfYear := 1;
end;
end;
end;
end;


 
CTAPbIi   (2003-04-13 13:02) [4]

Спасибо


 
Anatoly Podgoretsky ©   (2003-04-13 13:21) [5]

Только учти, что существует несколько алгоритмов вычиснеия номера недели, поэтому тебя надо сначала разобраться, а каой тебе нужен. В Европе, наиболее часто используется алгоритм ISO, а в Америке другой.



Страницы: 1 вся ветка

Текущий архив: 2003.04.24;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
6-77071
Lamer XP
2003-02-25 18:03
2003.04.24
Sockets


4-77231
AlexeyRov
2003-02-26 16:29
2003.04.24
Цвет формы в виде градиента не получается сделать ?


6-77063
VIB
2003-03-04 15:43
2003.04.24
TWebBrowser


14-77105
[NIKEL]
2003-04-05 11:02
2003.04.24
Кто что знает про фирму BSS Systems?


6-77060
trotski
2003-02-24 13:41
2003.04.24
Глупый вопрос по NMHTTP