Время в делфи

Тема в разделе "Delphi - FAQ", создана пользователем Vadik(R), 31 дек 2007.

  1. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Люди, как можно засечь в Делфи время на 24 часа? То есть мне надо такое представление времени в делфи, что чтобы его можно было перевести таким образом.
    Пусть дано 1000000.
    Это значит: 1000000 Mod 60 = 40
    1000000 Div 60 = 16666.
    16666 Mod 60 = 46
    16666 Div 60 = 277.
    277 Mod 24 = 13
    277 Div 24 = 11.
    То есть, если значение 1 миллион, то это 11 дней, 13 часов, 46 минут, 40 секунд. Просто мне надо засечь таким образом 24 часа. Как обратится к такой ячейке и где она вообще есть?
     
  2. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Мне надо знать в Делфи такую штуку, типа как в Паскале есть переменная MemL[Seg0040:$6c];, которая выводит мне текущее время и дату в виде числа LongInt.
    То есть если значение этой ячейки было 100, а стало 280, то значит прошло 10 секунд(изменение на 1 - это соответсвует 1/18 секунды). Если всё равно не понятно, попытаюсь привести пример той проги, которую мне надо сделать на Делфи. Только код приведу её на Паскале.
     
  3. Vadik(R)

    Vadik(R) Well-Known Member

    Регистрация:
    12 дек 2007
    Сообщения:
    483
    Симпатии:
    0
    Да, я так вообще плохо разобрался в Делфи с TDate, TTime. Мне нужен примерно вот такой код на Делфи. Про писывается прога в автозагрузку(это я умею, не в этом суть).
    Код (Text):
    Program proganapascale;
    uses crt;
    var
    f : text;
    x : LongInt;
    begin
    Assign(f,'c:\windows\date.dat');
    reset(f);
    readLn(f,x);
    close(f);
    ClrScr;
    writeln('Привет, пользователь!');
    if (MemL[Seg0040:$6c]-x) Div (18*60*60*24))>0 Then Write('Ты уже не включал комп более одного дня!') Else Write('С момента последнего включения компа не прошло ещё и одного дня');
    ReWrite(f);
    Write(f,MemL[Seg0040:$6c]);
    Close(f);
    ReadKey
    End.
    А если это делать с помощью TDate, то если человек включал комп в 23:00, потом в 2:00, то реально пройдёт 3 часа, а прога напишет, что с момента последнего включения компа прошло более одного дня(т.е. более 24 часов!).
    Код (Text):
    var x : TDate;begin ... If x-date>0 Then ...
    Вот для этого я и создавал тему.
     
  4. Chernobyl

    Chernobyl Гость

    Короче я не чаго не понял

    если нужно получить время(Час например) то
    Код (Text):
    function GetTime: word;
    var
    SystemTime: TSystemTime; //Некое время(Неверное)
    begin
    GetLocalTime(SystemTime); //Получаем системное время
    result:=SystemTime.wHour; //Результату присваиваим Час(wHour). Можно поставить секундку и т.д.
    end;
     
Загрузка...

Поделиться этой страницей