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

Вниз

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

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.032 c
15-1137408292
Историкк
2006-01-16 13:44
2006.02.12
История объявления "Требуется программист с опытом работы"


15-1137855554
Andy BitOff
2006-01-21 17:59
2006.02.12
Очень сильная и красивая фильма


2-1137611006
Sysanin
2006-01-18 22:03
2006.02.12
webBrowser


15-1137522006
AlterEgo of WondeRu
2006-01-17 21:20
2006.02.12
Люди, если есть интересные WWW-идеи...


8-1125511130
Galiaf
2005-08-31 21:58
2006.02.12
Глубина в OpenGl.