Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.07.07;
Скачать: [xml.tar.bz2];

Вниз

Счетчик времени   Найти похожие ветки 

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.007 c
1-20044
Semin Aleksei
2003-06-23 12:11
2003.07.07
С++ и Delphi по разному вызывают виртуальный метод в конструкторе


14-20249
panov
2003-05-30 17:00
2003.07.07
Может, сгодится на что...


14-20247
Bland
2003-06-19 21:44
2003.07.07
Инстолятор на delphi


14-20284
NVO
2003-06-19 08:00
2003.07.07
Передача данных из таблиц с Lookup полями из COM+ в приложение


11-20023
Bartov
2002-10-28 13:50
2003.07.07
Ras and TAPI





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский