Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

количество дней [D7, XP]


Страницы:   1 2

Антон Шестаков ©   (2007-10-11 14:35:00) 

Как подсчитать количество дней между двумя датами DateTimePicker1 и DateTimePicker2. А результат выводился в label


Ega23   (2007-10-11 16:29:00) [1]

Да, вот ещё: Ламер - это тот, кто не просто не разбирается в вопросе, но ещё и пытается всем доказать свою правоту.


Ega23   (2007-10-11 16:27:00) [2]


> Dib@zol ©   (11.10.07 16:14) [23]


Попробую тебе объяснить.
Да, для своего возраста ты очень неплохо знаешь Delphi.
Но терпежа проверить свой ответ тебе не хватает.
С чем это связано - ну тут может быть масса причин, начиная от попытки заработать звание "Мастера" и желанием просто самоутвердиться среди коммьюнити.
Виноват в этом тупо возраст.
Просьба воспринять мой пост как обоснованную критику, а не "наезд". Задатки у тебя действительно весьма неплохие.


Dib@zol   (2007-10-11 16:23:00) [3]

> [21] MBo ©   (11.10.07 16:10)

Это однако неправильная функция! В момент возвращения результата это будет уже Today а не Tomorrow :)))


Dib@zol   (2007-10-11 16:14:00) [4]

> [21] MBo ©   (11.10.07 16:10)
Весело :)

> [17] Плохиш ©   (11.10.07 15:12)
> Т.е. категория "чайник" тебя уже не устраивает, полез в
> категорию "ламер"?
???


Ega23   (2007-10-11 16:14:00) [5]


> MBo ©   (11.10.07 16:10) [21]


КЛАСС!!!!!!!!!!!


MBo   (2007-10-11 16:10:00) [6]

До кучи:


function Tomorrow: TDateTime;
begin
 Sleep(24*60*60*1000);
 Result := Now;
end;


Palladin   (2007-10-11 16:08:00) [7]

(c) автор Автошемы - Dmitry.O

если мне не изменяет память


Ega23   (2007-10-11 16:07:00) [8]


> А копирайт чей?


Хоть убей 0 не помню. Функция появилась здесь году в 2003, то ли в Кладовке, то ли ещё где-то...
Я тогда на форум не ходил, только новости просматривал.
Долго смеялсо.
К ней ещё описание было, что-то типа:
"Я уже долгое время разрабатываю клиент-серверные приложиния в бухгалтерской сфере; пользовался функциями IncMonth(Year, Week), но очень не хватало функции IncDay. И вот..."  :)
А привычка копирайты в комментах указывать у меня гораздо позже появилась.
Так что автор сего опуса - неизвестен.


Dib@zol   (2007-10-11 15:54:00) [9]

function DaysBetween(ANow, AThen: TDateTime): Integer;
const T:Double=0.5;
asm
 FINIT;
 FLD ANow;
 FSUB AThen;
 FABS;
 FSUB T;
 FIST Result;
 FWAIT;
end;

Подойдёт?


Плохиш   (2007-10-11 15:12:00) [10]


> Dib@zol ©   (11.10.07 14:45) [6]
> > [5] Плохиш ©   (11.10.07 14:42)
>
> Предлагаю не предлагать мне всякого разного. Есть ведь _SYSTEMTIME,
>  а поэтому мне никакой TDateTime не зафик

Т.е. категория "чайник" тебя уже не устраивает, полез в категорию "ламер"? Ну, ну, продолжай...


Ping   (2007-10-11 14:58:00) [11]

Dib@zol ©   (11.10.07 14:50) [11]

А теперь посмотри исходник этой функции.


Ega23   (2007-10-11 14:55:00) [12]


> Dib@zol ©   (11.10.07 14:50) [11]
>
> Вощем вот.
>
> uses DateUtils + DaysBetween().


Ты про TDateTime уже прочитал, или как?


Leonid Troyanovsky   (2007-10-11 14:54:00) [13]


> Ega23 ©   (11.10.07 14:45) [7]

> А то появляются, понимаешь, шедевры:

А копирайт чей?

--
Regards, LVT.


Германн   (2007-10-11 14:52:00) [14]


> Dib@zol ©   (11.10.07 14:50) [11]

Дальше можешь не продолжать. Пока АП не подойдет.
:-)


Германн   (2007-10-11 14:51:00) [15]


> Ega23 ©   (11.10.07 14:45) [7]

Не запылилась ещё вися на стенке :-)


Dib@zol   (2007-10-11 14:50:00) [16]

Вощем вот.

uses DateUtils + DaysBetween().


Игорь Шевченко   (2007-10-11 14:47:00) [17]

Dib@zol ©   (11.10.07 14:45) [6]

Предлагаю не флудить. Могу посодействовать


Dib@zol   (2007-10-11 14:47:00) [18]

> В детский сад.

Куда вам угодно. Можно и в детский сад.


Ega23   (2007-10-11 14:45:00) [19]


> Предлагаю не предлагать мне всякого разного. Есть ведь _SYSTEMTIME,


В детский сад.


Ega23   (2007-10-11 14:45:00) [20]


> Dib@zol ©   (11.10.07 14:39) [3]
>
> > Разница находится вычитанием.
>
> Гениально. Лейбниц лопнул от зависти. .)))
>
> DecodeDate(DateTimePicker1.Date) а там разберёшься.


Может сначала ознакомишься с типом TDateTime?
А то появляются, понимаешь, шедевры:


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 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо