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

Вниз

Не могу сравнить две даты - результат ошибка помогите разобраться   Найти похожие ветки 

 
koha ©   (2007-04-13 04:46) [0]

Вот пример сравнения в D 2006 он работает:

if FileDateToDateTime(FileAge(ParamStr(0))) < (Date+Time) then begin

Авот в Delphi 6  выходит ошибка: вот в этом месте  < (Date+Time)  Как заменить или преодолеть или найти уникальное решение?


 
Roman_S ©   (2007-04-13 07:35) [1]

Есть другое решение:
var Hour1, Min1, Sec1, MSec1: Word;
begin
DecodeTime(Time, Hour1, Min1, Sec1, MSec1); // Раскодировать текущее время
if (Hour1 = Hour2) and (Min1 = Min2) //добавь своё
then begin

Надёжно, работоспособно везде

Понять бы - как работает твой код!


 
Loginov Dmitry ©   (2007-04-13 08:12) [2]

> Авот в Delphi 6  выходит ошибка: вот в этом месте  < (Date+Time)
>  Как заменить или преодолеть или найти уникальное решение?


Текст ошибки где?


 
Рамиль ©   (2007-04-13 09:31) [3]


> Roman_S ©   (13.04.07 07:35) [1]

Зачем так жестоко? Лавры IncDay покоя не дают?:)


 
Virgo_Style ©   (2007-04-13 09:47) [4]

koha ©   (13.04.07 4:46)
"уникальное решение" - это круто... телепатор вещает, что Date и Time у тебя или разных типов, или одного, но этот тип - DateTimePicker.


 
Плохиш ©   (2007-04-13 11:21) [5]


> koha ©   (13.04.07 04:46)  


> (Date+Time)

А чем Now не угодил?


 
ЮЮ ©   (2007-04-13 11:41) [6]

А чем Now не угодил?
Это же не машина времени, которая ищет ещё не созданные файлы :)


 
_Аноним   (2007-04-13 15:09) [7]


> Roman_S ©  


> Надёжно, работоспособно везде


А если надо сравнить не на равенство, а на больше\меньше?
ИНтересно было бы посмотреть на код, который рещает эту проблему через DecodeTime :-)


 
Alexey (AZ)   (2007-04-13 17:32) [8]

unit DateUtils;
HoursBetween...
IncHours...


 
Плохиш ©   (2007-04-13 17:51) [9]


> Alexey (AZ)   (13.04.07 17:32) [8]

И как это поможет узнать какая дата больше?


 
koha ©   (2007-04-14 04:40) [10]

Всем огромное спасибо Data+Time оказалась ни причем, я поторопился с поспешными выводами, но вот у меня была в коде такая функия и в ней ошибка и происходила:
function SetToDate(SetDate: String; Days: Integer): String;
Var dd,mm,yyyy: integer;
   M: Array of integer;
begin
 dd   := StrToInt(Copy(SetDate,1,2));
 mm   := StrToInt(Copy(SetDate,4,2));
 yyyy := StrToInt(Copy(SetDate,7,4));
 dd   := dd+Days;
 SetLength(M,SizeOf(Month));
 Move(Month[1],M[1],SizeOf(Month));
 While M[mm] < dd do begin
   if Visocos(yyyy) then M[2]:=29
   else M[2]:=28;
   dd:=dd - M[mm];
   Inc(mm);
   if mm > 12 then begin
     mm:=mm-12;
     Inc(yyyy);
   end;
 end;
 if dd < 10 then Result:="0"+IntToStr(dd)+"."
 else Result:=IntToStr(dd)+".";
 if mm < 10 then Result:=Result+"0"+IntToStr(mm)
 else Result:=Result+IntToStr(mm);
 Result:=Result+"."+IntToStr(yyyy)+" "+TimeToStr(Time);
end;


Результат преобразовывался деле StrToDateTime -  ошибка возникала потому, что между Date и Time не стоял пробел, например
в D2006  такое преобразование уместно: StrToDateTime(10.11.0609:38:24)
а вот delphi6 неуместно - необходимо ставить пробел т.е. вот так  StrToDateTime(10.11.06 09:38:24)



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

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

Наверх




Память: 0.49 MB
Время: 0.017 c
2-1176662834
deswan
2007-04-15 22:47
2007.05.06
Иконки в файлах


2-1176707699
Kolan
2007-04-16 11:14
2007.05.06
Мне нужен GUID в виде числа, как опьсать?


2-1176723054
bulavkin
2007-04-16 15:30
2007.05.06
Взаимодействие с другими приложениями


2-1176866712
VitAngel
2007-04-18 07:25
2007.05.06
Получить свой IP и блокировка запуска второй копии программы


15-1176007036
Просто Васёк
2007-04-08 08:37
2007.05.06
Христос Воскресе!