Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2007, 13:40   #11
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

procedure TForm1.Button1Click(Sender: TObject);
var
ndays: double;
ticks: LongInt;
btime: TDateTime;
begin
{Функция GetTickCount получает количество миллисекунд, прошедших с момента старта Windows}
ticks := GetTickCount;

{Чтобы получить дни, необходимо разделить на количество миллисекунд в дне, 24*60*60*1000=86400000}
ndays := ticks/86400000;

{теперь вычитаем из текущей даты полученное количество дней работы Windows}
bTime := now-ndays;

{показываем диалоговое окошко с сообщением}
ShowMessage(
FormatDateTime('"Windows started on" dddd, mmmm d, yyyy, ' +
'"at" hh:nn:ss AM/PM', bTime) + #10#13 +
'Its been up for ' + IntToStr(Trunc(nDays)) + ' days,' +
FormatDateTime(' h "hours," n "minutes," s "seconds"',ndays));
end;
SERG1980 вне форума Ответить с цитированием
Старый 06.04.2007, 08:20   #12
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

procedure TForm1.Button1Click(Sender: TObject);
var
ndays: double;
ticks: LongInt;
btime: TDateTime;
begin
{Функция GetTickCount получает количество миллисекунд, прошедших с момента старта Windows}
ticks := GetTickCount;

{Чтобы получить дни, необходимо разделить на количество миллисекунд в дне, 24*60*60*1000=86400000}
ndays := ticks/86400000;

{теперь вычитаем из текущей даты полученное количество дней работы Windows}
bTime := now-ndays;

{показываем диалоговое окошко с сообщением}
ShowMessage(
FormatDateTime('"Windows started on" dddd, mmmm d, yyyy, ' +
'"at" hh:nn:ss AM/PM', bTime) + #10#13 +
'Its been up for ' + IntToStr(Trunc(nDays)) + ' days,' +
FormatDateTime(' h "hours," n "minutes," s "seconds"',ndays));
SERG1980 вне форума Ответить с цитированием
Старый 08.04.2007, 02:05   #13
execom
Редкий тунеядец
Форумчанин
 
Аватар для execom
 
Регистрация: 29.10.2006
Сообщений: 595
По умолчанию

Вот эта прога показывет сколько времени работает комп, правда с точностью до минут! Суть тут в следующем, сперва мы смотрим сколько тактов процессор сделал с момента включения компа, затем через секунду мы определяем это опять, затем от большего меньшее... оп и мы знаем сколько тактов проц делает за секунду, далее делим общее количество тактов на количество тактов за секунду и имеем количество секунд с момента включения. Далее две простых операции и мы знаем сколько часов и минут с момента включения!
Код:
program Vremaj_S_Momenta_Vkljuchenija;
{$APPTYPE CONSOLE}
uses
  SysUtils;
function rdtsc:Int64; asm rdtsc end;
var
   ch : integer;
  min : integer;
   t0 : Int64;
   t1 : Int64;
   t2 : Int64;
begin
t0:=rdtsc;
sleep(1000);
t1:=rdtsc;
t2:=t1 div (t1-t0);
ch:=t2 div 3600;
min:=(t2 mod 3600) div 60;
writeln('Komp pashet ',ch,' chasa ',min,' minut ');
readln;
end.
Пример на 100% рабочий!
З.Ы. Главный плюс метода - простота, поэтому особых претензий прозьба не предъявлять, ведь речь шла об оптимизации!

Последний раз редактировалось execom; 08.04.2007 в 02:11.
execom вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите оптимизировать процедуру Cold Went Компоненты Delphi 4 29.04.2008 15:11
Помогите оптимизировать! Altera Общие вопросы Delphi 6 25.03.2008 20:09
Помогите оптимизировать HTML код после Publisher Гербера HTML и CSS 16 03.12.2007 11:46
Помогите оптимизировать сайт Nadejda HTML и CSS 4 07.01.2007 21:04