![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Работа с датами [D7, XP]
03111978 © (2010-05-20 09:12:00)Имеется дата, которая записана в строковую переменную, например - 19.05.2010, нужно найти предыдущую дату и записать ее в переменную. Подскажите советом.
Плохиш (2010-05-20 16:25:00) [1]
> Anatoly Podgoretsky © (20.05.10 16:01) [19]
Это называется не "давай", а "подай" сирому и убогому.
Anatoly Podgoretsky (2010-05-20 16:01:00) [2]
> Плохиш © (20.05.10 11:34) [14]
> 03111978 (20.05.10 13:34) [17]
Я же говорил, ты не умничай, ты код давай!
Sha (2010-05-20 15:40:00) [3]>> Не нашел подходящего типа?
> Просто мне потом с этой строкой работать
Строки предназначены для ввода/отображения. Для работы есть другой тип,
ты же не складываешь строки, когда требуется сложить 2 числа.
03111978 (2010-05-20 13:34:00) [4]
> Anatoly Podgoretsky © (20.05.10 13:27) [16]
Спасибо, разобрался.
> Плохиш © (20.05.10 11:34) [14]
А ты плохиш отдыхай и не умничай, зачеты я в свое время уже насдавался.
Anatoly Podgoretsky (2010-05-20 13:27:00) [5]> 03111978 (20.05.2010 11:14:12) [12]
Значит в DateTime единица
Anatoly Podgoretsky (2010-05-20 13:25:00) [6]> 03111978 (20.05.2010 09:12:00) [0]
Это не дата, а строка.
Плохиш (2010-05-20 11:34:00) [7]
> 03111978 (20.05.10 11:14) [12]
Вот скажи, нафига в делфи отладчик встроили?
И зачвм оно тебе, это программирование? Зачёт спихнуть?
RWolf (2010-05-20 11:32:00) [8]время модификации файла проще получать через FileAge.
03111978 (2010-05-20 11:14:00) [9]
> почему бы prevdate не вычислять сразу, как DateTime-1, без
> лишних преобразований?
Допустим даже если я делаю так :
prevdate := DateTime - 1;
в prevdate ничего нет, там 0
Sergey13 (2010-05-20 10:18:00) [10]> [7] 03111978 (20.05.10 09:39)
> Просто мне потом с этой строкой работать
Судя по вопросу работать тебе надо как раз таки с датой. Просто иногда результат работы интерпретировать как строку.
RWolf (2010-05-20 10:10:00) [11]почему бы prevdate не вычислять сразу, как DateTime-1, без лишних преобразований?
03111978 (2010-05-20 09:56:00) [12]Что то не понял. Во до этого момента работает :
findFirst(p + 'rp180506.035', 1, File_Rec);
DateTime := FileDateToDateTime(File_Rec.Time);
datafile := DateToStr(DateTime);
В datafile лежит 19.05.2010
В DateTime лежит 40317.120648
Значит я в итоге должен получить:
18.05.2010
40316.120648
Омлет (2010-05-20 09:49:00) [13]> 03111978 (20.05.10 09:35) [5]
prevdate := FileDateToDateTime(File_Rec.Time) - 1;
03111978 (2010-05-20 09:39:00) [14]
> Не нашел подходящего типа?
Просто мне потом с этой строкой работать
Sergey13 (2010-05-20 09:38:00) [15]> [0] 03111978 (20.05.10 09:12)
> Имеется дата, которая записана в строковую переменную
Не нашел подходящего типа?
03111978 (2010-05-20 09:35:00) [16]
> RWolf © (20.05.10 09:16) [4]
если так, то почему то не работает :-(
var
File_Rec : TSearchRec;
DateTime,prevdate : TDateTime;
datafile : string;
begin
findFirst('c:\rp180506.035', 1, File_Rec);
DateTime := FileDateToDateTime(File_Rec.Time);
datafile := DateToStr(DateTime);
prevdate := strtodate(datafile)-1;
end;
что я не так сделал ?
RWolf (2010-05-20 09:16:00) [17]prevdate:=strtodate(mydatestr)-1;
turbouser (2010-05-20 09:15:00) [18]
> 03111978 (20.05.10 09:13) [2]
Найти в где?
Если просто вычесть день, то
uses DateUtils
IncDay(MyDateTime,-1)
03111978 (2010-05-20 09:13:00) [19]
> Чего?
Есть некая дата, нужно программно найти предыдущую
turbouser (2010-05-20 09:12:00) [20]Чего?