Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.017 c
1-20082
Voyager_XX
2003-06-23 19:55
2003.07.07
Чем вызвана ошибка Cannot assign a TFont to a TFont...


14-20227
antoniz
2003-06-19 12:03
2003.07.07
Как в поле BLOB сохранить файл формата Excel ...


14-20210
LOX
2003-06-20 20:25
2003.07.07
Пароль в XP!


9-19946
Ёгурт
2002-12-15 18:57
2003.07.07
А какой алгоритм у крестиков и ноликов


1-20156
denis24
2003-06-25 11:33
2003.07.07
массив tEdit