![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Даты
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)