![]() |
|
#1
|
|||
|
|||
![]() Здрасте, пишу программу для выключения компа по таймеру,
написал функцию которая выщитывает оставшееся время до выключения. Сталкнулся с такой проблемой: Когда я передаю функции строчку Label1.Caption:=Ostatok('13:26:10', '13:35:15'); то она всё нормально выщитывает, но когда беру значения из переменной Label1.Caption:=Ostatok(Time, Time); вылазит ошибка "is not a valid integer value" Переменная типа String, нет вней не лишних пробелов, нелишних символов. Объясните нубу почему возникает эта ошибка??? |
#2
|
|||
|
|||
![]() дай код всей процедуры
|
#3
|
|||
|
|||
![]() Код:
function Ostatoc(Ttime:string; Timer:string):String; var dd,mm,yy,S:integer; dd1,mm1,yy1,S1:Integer; begin Dd:=StrToInt(Copy(Ttime,1,pos(':',Ttime)-1)); if (length(Ttime))=7 then S:=2 else S:=3; Mm:=StrToInt(Copy(Ttime,pos(':',Ttime)+1,S-2)); yy:=StrToInt(Copy(Ttime,S+4,length(Ttime))); Dd1:=StrToInt(Copy(Timer,1,pos(':',Timer)-1)); if length(Timer)=7 then S1:=2 else S1:=3; Mm1:=StrToInt(Copy(Timer,pos(':',Timer)+1,S1-2)); yy1:=StrToInt(Copy(Timer,S1+4,length(Timer))); Result:='осталось: '+IntToStr(dd1-dd)+' час. '+IntToStr(mm1-mm)+' мин. '+IntToStr(yy-yy1)+' сек.'; end; Последний раз редактировалось Admin, 19.04.2011 в 09:50. |
#4
|
||||
|
||||
![]() Так работает нормально, ошибок не выдаёт но вряд ли правильно считает к.т у меня минуты и сек с минусом получались.
Код:
procedure TForm1.Button1Click(Sender: TObject); begin Label1.Caption:= Ostatoc('12:11:10','13:12:15'); end; If end Then begin; |
#5
|
||||
|
||||
![]() реализация 1:
Код:
function DiffTime(ANow: String; ATime: String): String; begin Result:=TimeToStr(StrToDateTime(ATime)-StrToDateTime(ANow)); end; Код:
function DiffTime(ANow: String; ATime: String): String; var diff: TDateTime; h, m, s, ms: Word; begin diff:=StrToDateTime(ATime)-StrToDateTime(ANow); DecodeTime(diff, h, m, s, ms); Result:=Format('%.2d час. %.2d мин. %.2d сек.', [h, m, s]); end; Код:
begin Edit1.Text:=DiffTime(DateTimeToStr(Time), '12:00'); Edit2.Text:=DiffTime(DateTimeToStr(Time), DateTimeToStr(Time)); end; Пишу программы за еду. __________________ |
#6
|
|||
|
|||
![]() Вроде разобрался, всем спасибо!
|
#7
|
|||
|
|||
![]() А теперь как из даты вычесть дату?
Сколько непробовал год получается 1898 |
#8
|
||||
|
||||
![]() Код:
function DiffTime(ANow: String; ATime: String): String; var diff: TDateTime; begin diff:=StrToDateTime(ATime)-StrToDateTime(ANow); Result:=Format('%.0f дн.', [diff]); end; ![]() Пишу программы за еду. __________________ |
#9
|
|||
|
|||
![]() Спасибо...
|