![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Дата перехода на летнее/зимнее время [D7, XP]
worldmen © (2009-11-01 00:25:00)Как вычислить даты в которые нужно переводить часы на летнее/зимнее время?
begin...end (2009-11-01 10:28:00) [1]В [2] опечатка:
LastDay := EncodeDate(Year, 3, 31).
begin...end (2009-11-01 10:23:00) [2]> Юрий Зотов © (01.11.09 01:47) [1]
> Result := EncodeDate(Year, 3, 24)
Почему 24?
> worldmen (01.11.09 00:25)
function GetSummerTimeDate(Year: Word): TDate;
var
LastDay: TDate;
begin
LastDay := EncodeDate(Year, 5, 31);
Result := LastDay - DayOfWeek(LastDay) + 1
end
Юрий Зотов (2009-11-01 01:47:00) [3]Переход на зимнее время осуществляется в последнее воскресенье октября.
Переход на летнее время осуществляется в последнее воскресенье марта.
Остальное легко делается утилитами из SysUtils, например:
function GetSummerTimeDate(Year: word): TDate;
begin
Result := EncodeDate(Year, 3, 24);
while DayOfWeek(Result) <> 1 do
Result := IncDay(Result)
end;
function GetWinterTimeDate(Year: word): TDate;
begin
Result := EncodeDate(Year, 10, 24);
while DayOfWeek(Result) <> 1 do
Result := IncDay(Result)
end;