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

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

Работа с датами [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]

Чего?


Наверх

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