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

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

Даты


maxgeron ©   (2002-07-12 14:22:00) 

Мастера Дельфи! Подскажите в каком направлении двигаться. Есть две даты между которыми нужно подсчитать количество дней. Наверное нужно преобразовать дату (например из TDateTimePicker) в число, вычислить разницу, и сделать обратное - число преобразовать в дату. Со обратным преобразованием все нормально:
procedure TForm1.Button1Click(Sender: TObject);
var
k:double;
begin
try
k:=StrToFloat(Edit1.Text);
except
end;
Edit2.Text:=FormatDateTime("dd.mm.yyyy hh:mm:ss",k);
end;
а вот с прямым не получается...


Anatoly Podgoretsky   (2002-07-12 15:51:00) [1]

Ты получил цифру из цифры, правда только целую часть
Тебе действительно надо посмотреть хелп о типа TDateTime


MBo   (2002-07-12 15:38:00) [2]

>maxgeron
Ты бы посмотрел в хелпе описание TDateTime, все будет ясно


maxgeron   (2002-07-12 15:29:00) [3]

>Johnmen
Ни в чем, просто получил цифру из даты. Это тот минимум, который был нужен.


Johnmen   (2002-07-12 15:01:00) [4]

>maxgeron (12.07.02 14:52)

Интересно, а в чем информативность сего ?


maxgeron   (2002-07-12 14:52:00) [5]

Спасибо всем за участие! Получилось прямое преобразование.
procedure TForm1.Button2Click(Sender: TObject);
var
n:double;
begin
n:=Int(DateTimePicker1.Date);
Edit3.Text:=FloatToStr(n);
end;
Пока это подойдет, а с остальными подсказками попробую позднее.


Johnmen   (2002-07-12 14:47:00) [6]

Да, конечно Trunc !


Kaban   (2002-07-12 14:35:00) [7]

кстати, есть подозрение, что Int(Last_Date-First_Date)
не прокатит


BAY   (2002-07-12 14:35:00) [8]

>Kaban
Ага. Тут Trunc надо


Praco   (2002-07-12 14:34:00) [9]

RXLib
DateUtil.pas

DateDiff - Определяет разницу между датами, заданными Date1 и Date2 в днях, месяцах и годах.
DaysBetween - Вычисляет число дней между датами Date1 и Date2,
DaysInPeriod - Вычисляет число дней между датами Date1 и Date2


Kaban   (2002-07-12 14:33:00) [10]

д, ошибочка вышла round к ближайшему округляет


maxgeron   (2002-07-12 14:31:00) [11]

А почему не то, ведь мы присвоим переменной число? За ответ спасибо, попробую.


Johnmen   (2002-07-12 14:30:00) [12]

Удивительное постоянство этого вопроса ! :))))

1. Int(Last_Date)-Int(First_Date)
2. Int(Last_Date-First_Date)

Разная смысловая нагрузка, но ты вдумайся, и поймешь :)


Kaban   (2002-07-12 14:26:00) [13]

ага, не то
вместо k:=StrToFloat(Edit1.Text);
StrToDateTime


Kaban   (2002-07-12 14:24:00) [14]

Количество дней между двумя датами = Round(Last_Date)-Round(First_Date)


Наверх

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