Форум: "Начинающим";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];
ВнизОпределение первого и последнего дня в месяце Найти похожие ветки
← →
ivc_vetal © (2006-01-16 16:59) [0]Как определить первый и последний день месяца?
← →
Gero © (2006-01-16 17:00) [1]Первый всегда имеет первое число, а последний — в зависимости от месяца и года (28-31).
← →
Sergey13 © (2006-01-16 17:01) [2]Ну первый то наверное нетрудно. 8-)
К нему IncMonth-1
← →
ivc_vetal © (2006-01-16 17:08) [3]Уважаемые мастера, а подскажите вообще где в Help"е можно посмотреть все функции по датам? Заранее благодарен.
← →
Gero © (2006-01-16 17:10) [4]date/time routines
← →
ivc_vetal © (2006-01-16 17:13) [5]thanks!!!!!!!!
← →
Ega23 © (2006-01-16 17:21) [6]Не забывайте шедевр IncDay!
← →
Джо © (2006-01-24 15:28) [7]> [6] Ega23 © (16.01.06 17:21)
> Не забывайте шедевр IncDay!
Он всегда в наших сердцах! :)
← →
Алхимик © (2006-01-24 18:49) [8]
> [6] Ega23 © (16.01.06 17:21)
> Не забывайте шедевр IncDay!
Кинь ссылку, а то уже забываю :)
← →
Ega23 © (2006-01-24 19:03) [9]
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;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.02.12;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.04 c