![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определение первого и последнего дня в месяце [D7, XP]
ivc_vetal © (2006-01-16 16:59:00)Как определить первый и последний день месяца?
Ega23 (2006-01-24 19:03:00) [1]
function TfmMain.IncDay(const DateTime: TDateTime; NumberOfDays: Integer): TDateTime;
{Функция предназначена для изменения даты (DateTime) путем добавления количества дней (NumberOfDays). Значение NumberOfDays может быть отрицательным.}
var
Y, M, D, CountDays: Word;
N: Integer;
Sign, NoBreak: Boolean;
begin
Sign := NumberOfDays >= 0;
DecodeDate(DateTime, Y, M, D);
N := NumberOfDays;
NoBreak := True;
if Sign then //Прибавить
begin
while(NoBreak) do
begin //Количество дней в месяце
CountDays := MonthDays[IsLeapYear(Y), M];
if (N + D) <= CountDays then //Если в пределах данного месяца
begin
Inc(D, N);
NoBreak := False;
end
else
begin
if M < 12 then
Inc(M, 1)
else
begin
M := 1;
Inc(Y, 1);
end;
N := N - (CountDays - D);
D := 0;
end;
end;
end
else //Отнять
begin
N := -N;
while(NoBreak) do
begin
if D > N then //Если в пределах данного месяца
begin
Dec(D, N);
NoBreak := False;
end
else
begin
if M > 1 then
Dec(M, 1)
else
begin
M := 12;
Dec(Y, 1);
end;
//Количество дней в месяце
CountDays := MonthDays[IsLeapYear(Y), M];
N := N - D;
D := CountDays;
end;
end;
end;
Result := EncodeDate(Y, M, D);
//Установить время из старой даты
ReplaceTime(Result, DateTime);
end;
Алхимик (2006-01-24 18:49:00) [2]
> [6] Ega23 © (16.01.06 17:21)
> Не забывайте шедевр IncDay!
Кинь ссылку, а то уже забываю :)
Джо (2006-01-24 15:28:00) [3]> [6] Ega23 © (16.01.06 17:21)
> Не забывайте шедевр IncDay!
Он всегда в наших сердцах! :)
Ega23 (2006-01-16 17:21:00) [4]Не забывайте шедевр IncDay!
ivc_vetal (2006-01-16 17:13:00) [5]thanks!!!!!!!!
Gero (2006-01-16 17:10:00) [6]date/time routines
ivc_vetal (2006-01-16 17:08:00) [7]Уважаемые мастера, а подскажите вообще где в Help'е можно посмотреть все функции по датам? Заранее благодарен.
Sergey13 (2006-01-16 17:01:00) [8]Ну первый то наверное нетрудно. 8-)
К нему IncMonth-1
Gero (2006-01-16 17:00:00) [9]Первый всегда имеет первое число, а последний — в зависимости от месяца и года (28-31).