Arşiv Anasayfa Açık Kaynak
Sayfalar: 1
O anki saat ile girilen saat arasındaki zamanı hesaplama.. Gönderen: 3L3CTRO Tarih: 13 March 2008 00:31:29
Bir projem gereği lazım eden iki saat arasındaki süreyi saat,dak,sn olarak göstermem gerekiyordu araştırdım ama işime yarayacak istediğim gibi kodlar bulamadım...ama nasıl dönüştürüleceğini bir sitede buldum ve onun üzerinde çalışarak bir algoritma kurdum program gayet iyi çalışıyor sizlere bir örnek vereceğim orada timera yazdım kodları ve bana örneğin"" 1 saat - 25 dakika - 2 saniye"" kaldi gibisinden söylüyor zaman ilerledikçe program kaç saat,dk,sn kaldığını gayet iyi gösteriyor....belki internette vardır veya sizler biliyorsunuzdur ama olsun ben yaptığım için birazda uğraştığım için tabi bana göre çok büyük birşey.. neyse fazla uzatmayayım örneği ekleyeceğim...

Algoritmayı buna göre kurmuştum Smile
-----------------------------------------
örnek(16:40:15) 16*3600 + 40*60 + 15 = 60015sn

örnek(17:20:10) 17*3600 + 20*10 + 10 = 61410sn

 1395 /3600 =...sa(tam sayı yap)

(1395 mod 3600)/60 = ....dk(tam sayı yap)
 1395 mod 60 = ....sn(aynen kalsın)
-----------------------------------------

Kolay gelsin...
Ynt: O anki saat ile girilen saat arasındaki zamanı hesaplama.. Gönderen: babahayati Tarih: 13 March 2008 09:12:43
Sercan güzel... teşekkür ederiz.
Hazır böyle bir proje yapmışken neden istenilen saatte bilgisayarı resetleyen veya kapatan bir proje geliştirmiyoruz(ruz dediğime bakma sen yapacaksın Smile )
Aşağıya foksiyonu ekliyorum.
Girilen saate gelindiğinde saniyen -(eksi) oluyor, bir kontrol ifadesi ile saniye - olduğu zaman (saniye<0) veya başka bir algoritma ile işi bitirebilirsin.
 
function WindowsExit(RebootParam: Longword): Boolean;
var
  TTokenHd: THandle;
  TTokenPvg: TTokenPrivileges;
  cbtpPrevious: DWORD;
  rTTokenPvg: TTokenPrivileges;
  pcbtpPreviousRequired: DWORD;
  tpResult: Boolean;
const
  SE_SHUTDOWN_NAME = 'SeShutdownPrivilege';
begin
  if Win32Platform = VER_PLATFORM_WIN32_NT then
  begin
    tpResult := OpenProcessToken(GetCurrentProcess(),
      TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,
      TTokenHd) ;
    if tpResult then
    begin
      tpResult := LookupPrivilegeValue(nil,
                                       SE_SHUTDOWN_NAME,
                                       TTokenPvg.Privileges[0].Luid) ;
      TTokenPvg.PrivilegeCount := 1;
      TTokenPvg.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
      cbtpPrevious := SizeOf(rTTokenPvg) ;
      pcbtpPreviousRequired := 0;
      if tpResult then
        Windows.AdjustTokenPrivileges(TTokenHd,
                                      False,
                                      TTokenPvg,
                                      cbtpPrevious,
                                      rTTokenPvg,
                                      pcbtpPreviousRequired) ;
    end;
  end;
  Result := ExitWindowsEx(RebootParam, 0) ;
end;

KULLANIMI:
WindowsExit(EWX_REBOOT or EWX_FORCE) ;     // reset atar
WindowsExit(EWX_POWEROFF or EWX_FORCE) ; // makinayı kapatır

Ynt: O anki saat ile girilen saat arasındaki zamanı hesaplama.. Gönderen: 3L3CTRO Tarih: 13 March 2008 09:19:02
hayati teşekkürler ama benim o dediğim projem buydu zaten bir proje için yapmıştım demiştim ya işte o otomatik kapanma idi...Birde bir ara dediğin gibi (-) eksilere iniyor doğru bir döngüye bağlamak lazım..Smile
Ynt: O anki saat ile girilen saat arasındaki zamanı hesaplama.. Gönderen: babahayati Tarih: 13 March 2008 09:26:26
vicdanı kara Smile neden projeyi paylaşmıyorun o zaman, heığnn
Ynt: O anki saat ile girilen saat arasındaki zamanı hesaplama.. Gönderen: 3L3CTRO Tarih: 13 March 2008 13:35:18
Paylaşacağım dur biraz.. tam bitmedi diyebilirim..:)Ama Açık Kaynak Değil Smile Üstü Kapalı Kaynak...