Текущий архив: 2003.07.07;
Скачать: CL | DM;
Вниз
Счетчик времени Найти похожие ветки
← →
Vilux (2003-06-24 16:50) [0]Народ, помогите в таком вопросе. Мне нужно счетчик времени, чтобы при достижении 60 секунд увеличивались минуты
и т.д. вплоть до месяцев. Пробовал TDateTime, но там нельзя выставлять дни, месяцы, года по нулям.
Что посоветуете? Или вручную счетчик заводить?
← →
Семен Сорокин (2003-06-24 16:54) [1]а ты считай только секунды
← →
Семен Сорокин (2003-06-24 16:57) [2]а так месяц у тебя будет добавляться по истечении 30 дней, или 31-го? :)) может 28-ми.
← →
AlexSV (2003-06-24 17:04) [3]может это поможет?
DateTimeToSystemTime()
SystemTimeToDateTime()
← →
Vilux (2003-06-24 17:38) [4]Спасибо, но это не совсем то. Тогда такой вопрос, есть ли функция перевода секунд в дни, часы, минуты? Знаю, что это можно самому легко сделать, но чтобы не изобретать велосипед... может такая функция уже встроена?
← →
Семен Сорокин (2003-06-24 17:40) [5]Minuts := Count div 60
Hours := Count div 3600 (60*60)
Days := Count div 86400 (60*60*24)
и т.д.
← →
AlexSV (2003-06-24 17:51) [6]А посмотреть в Help"e рядом?
DecodeDate()
DecodeTime()
← →
Vilux (2003-06-24 18:27) [7]AlexSV ©
Это не то, мне нужно, чтобы я на вход подавал секунды, допустим 30000 сек., а на выходе получал, сколько это дней, часов, минут...
Семен Сорокин правильно меня понял, спасибо.
← →
ОРЕН (2003-06-24 19:26) [8]Написать ручками элементарно. Неужели будете до конца дней тут на форуме справшивать ?! Уже давно сами бы написали!
← →
Vilux (2003-06-25 08:55) [9]2OPEH
Читай выше... я же русским языком сказал, что знаю, что написать элементарно. Но зачем это делать, если это может быть в системе в виде готовой функции? Вот я и спросил...
← →
Palladin (2003-06-25 09:03) [10]
> Vilux (25.06.03 08:55)
что бы больше подобных вопросов не возникало
справка\index поиск date\time routines
запомни это волшебное слово routines
← →
George Karkuzashvili (2003-06-25 12:10) [11]Привожу полностью Юнит для поддержки отображения времени и количества дней процесса. Сам использую в программах для отображения времени соединения пользователей с базами данных в строке статуса. Процедура TimerConnectionTimer(Sender: TObject); - Event OnTimer. К сожалению нет времени убирать лишний код из этой процедуры. Думаю, кому надо - разберетесь. Если нет - пишите george@ukr.net
С уважением,
Георгий Каркузашвили
(QuickSoftLab)
unit UTimeUserConn;
interface
uses
SysUtils, Classes, QTypes, QExtCtrls, QComCtrls;
type
TTimeUserConn = class(TDataModule)
TimerConnection: TTimer;
procedure TimerConnectionTimer(Sender: TObject);
private
function TimeForm(tint: Integer): String;
{ Private declarations }
public
timeConnection: Integer;
{ Public declarations }
end;
var
TimeUserConn: TTimeUserConn;
implementation
uses Udepend, QQsDepend;
{$R *.xfm}
function TTimeUserConn.TimeForm(tint: Integer): String;
var second,minute,hour,day:Integer;
secondS,minuteS,hourS,dayS:String;
begin
day := Trunc(tint/86400);
hour := Trunc((tint - (day*86400))/3600);
minute := Trunc((tint-((hour*3600)+(day*86400)))/60);
second := tint - ((minute*60) + (hour*3600) + (day*86400));
dayS := IntToStr(day);
if hour < 10 then hourS := "0" + IntToStr(hour) else hourS := IntToStr(hour);
if minute < 10 then minuteS := "0" + IntToStr(minute) else minuteS := IntToStr(minute);
if second < 10 then secondS := "0" + IntToStr(second) else secondS := IntToStr(second);
Result := dayS + " day`s, " + hourS + ":" + minuteS + ":" + secondS;
end;
procedure TTimeUserConn.TimerConnectionTimer(Sender: TObject);
const timeStop : String = "Time: STOP";
var al: Boolean;
begin
with Depend.QBint.Depends[0] do
begin
if Boolean(Parameters[4].Parameter) then
begin
timeConnection := timeConnection + 1;
Parameters[2].Parameter := TObject("Time: " + TimeForm(timeConnection));
if timeConnection > 0 then al := False else al := True;
Depend.setStatusBarInformation(al);
end else
begin
timeConnection := 0;
end;
end;
end;
end.
← →
Vilux (2003-06-25 12:52) [12]Написал свой код, получился такой... на входе секунды, на выходе дни, часы, минуты, секунды...
У Георгия то же самое, только грамотнее написано, в 4 строчки...
Всем спасибо...
procedure SecToAll(var d,h,m,s:integer);
begin
m:=s div 60;
s:=s-(m*60);
h:=0;
if m>59 then
begin
h:=m div 60;
m:=m-(h*60);
end;
d:=0;
if h>23 then
begin
d:=h div 24;
h:=h-(d*24);
end;
end;
Страницы: 1 вся ветка
Текущий архив: 2003.07.07;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.006 c