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

Вниз

Разница между датами   Найти похожие ветки 

 
Demon ltd   (2002-03-14 23:09) [0]

У меня есть вопрос. Чтобы вывести разницу между двумя датами в Edit,
я прописываю строчку:
form6.Edit1.Text := DateToStr(DateTimePicker2.Date - DateTimePicker1.Date);
В Edit (для примера) вводиться значение 20.12.45
А что нужно дописать в эту строчку, чтобы в Edit вывелось 20 дней 12 месяцев 45 лет.
Заранее благодарен.


 
Malder ©   (2002-03-14 23:30) [1]

Формулируй вопрос, блин, корректно. Почитай рассказ, который предлагают авторы сайта. Чтоб задать вопрос - надо знать половину ответа на него =)

Лично я не понял что вводится в Edit ?
Цитирую: "В Edit (для примера) вводиться значение 20.12.45" - какой смысл туда что-то вводить ? Вводить надо в datetimepicker1 и datetimepicker2...


 
Anatoly Podgoretsky ©   (2002-03-14 23:32) [2]

Ничего, тебе надо писать свою процедуру формативания, но учти что разница между дувмя датами не является датой, поэтому использование DateToStr не законно.


 
Shirson ©   (2002-03-15 07:26) [3]

Дэлфи (шестая точно) обладает весьма приятным набором инструментов по издевательству над датами. Раздел в хелпе называется date/time routines. Их там ОЧЕНЬ много.
А делать нужно так:
Из разницы, которая у тебя ложится в едит, вычленяешь год, месяц, день:

var TD:Tdatetime;
begin
TD:=DateToStr(DateTimePicker2.Date - DateTimePicker1.Date);
form6.Edit1.Text:=
inttostr(DayOf(TD))+"дней "+
inttostr(MonhtOf(TD))+"месяцев "+
inttostr(YearOf(TD))+"лет";
end;

Вот собственно и все. Дальше уж сам причёсывай прогу, если нужно. Например, чтобы правильно писала "день/дней", "месяц/месяцев", "год/лет". Делов на пару-тройку строчек кода.


 
Anatoly Podgoretsky ©   (2002-03-15 08:01) [4]

И получишь что нибудь типа 2 дня 1 месяц 1901 год


 
Shirson ©   (2002-03-15 09:56) [5]

Легко :)


var TD:Tdatetime;
Y,M,D:Word;
begin
TD:=DateTimePicker1.Date;
D:=0;
while MonthsBetween(DateTimePicker1.Date,DateTimePicker2.Date) <>
MonthsBetween(DateTimePicker1.Date,td) do
begin
inc(d);
TD:=IncDay(TD);
end;
Y:=YearsBetween(DateTimePicker1.Date,DateTimePicker2.Date);
M:=MonthsBetween(DateTimePicker1.Date,DateTimePicker2.Date)-Y*12;
D:=DaysBetween(DateTimePicker1.Date,DateTimePicker2.Date)-D;
Edit1.Text:= inttostr(D)+"


 
Shirson ©   (2002-03-15 09:57) [6]




Страницы: 1 вся ветка

Текущий архив: 2002.03.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.016 c
3-90738
aleks2000
2002-02-24 12:48
2002.03.28
<B>Как открыть ДОС базу данных dBase III в Делфи, так чтобы было написано на нормальном русском</B>


3-90763
artemon
2002-03-01 18:41
2002.03.28
Построение запроса к разным базам из одного приложения


1-90900
skovorodka
2002-03-17 11:03
2002.03.28
Как зная путь к .exe файлу узнать его картинку ?


3-90807
Зинец Виктор
2002-02-28 18:22
2002.03.28
Выбор схемы работы с удаленной БД и сервера БД


1-90982
anod
2002-03-14 14:00
2002.03.28
Отображение файлов FileListBox