Avatar billede morteeart Nybegynder
24. oktober 2004 - 21:49 Der er 5 kommentarer og
2 løsninger

Måle uptime af et program

hej

kan man via. timers måle uptime af et program,
og hvis ja, så hvordan ?

bruger MS Visual Studio 6.0 Enterprise.
Avatar billede sovsekoder Nybegynder
24. oktober 2004 - 21:51 #1
du kan gemme klokken i ms når porgrammet startes. Til ethvert tispunkt kan du så finde tiden fra du startede programmet hvis at trække dette tal fra det nuværende tidspunkt i ms.
Avatar billede sovsekoder Nybegynder
24. oktober 2004 - 21:51 #2
givet at uptime, er tiden der er gået fra du startede programmet og så til "nu"
Avatar billede morteeart Nybegynder
24. oktober 2004 - 21:57 #3
yes, okay :)
Avatar billede sjh Nybegynder
25. oktober 2004 - 00:36 #4
Du skal bare ikke bruge End for at afslutte programmet.. brug Unload Me

'--------------------------------- Form1 ---------------------------------
Option Explicit

Private datStart As Date

Private Sub Form_Load()
  datStart = Now
End Sub

Private Sub Form_Unload(Cancel As Integer)
Dim strTxt  As String
Dim datSlut As Date
Dim intSek  As Long, _
    intMin  As Long, _
    intTim  As Long, _
    intDag  As Long, _
    intAar  As Long

  datSlut = Now

  intSek = DateDiff("s", datStart, datSlut)
  intMin = Int(intSek / 60)
  intTim = Int(intMin / 60)
  intDag = Int(intTim / 24)
  intAar = Int(intDag / 365)

  intSek = (intSek Mod 60)
  intMin = (intMin Mod 60)
  intTim = (intTim Mod 24)

  If intAar > 0 Then
    strTxt = intAar & " År "
  End If

  If intDag > 0 Then
    strTxt = strTxt & intDag & IIf(intDag, " dag", " dage") & ", "
  End If

  If intTim > 0 Then
    strTxt = strTxt & intTim & IIf(intTim, " time", " timer") & ", "
  End If

  If intMin > 0 Then
    strTxt = strTxt & intMin & IIf(intMin, " minut", " minutter") & " og "
  End If

  strTxt = strTxt & intSek & IIf(intSek, " sekund", " sekunder")
  MsgBox strTxt
End Sub
'--------------------------------- Form1 ---------------------------------
Avatar billede sjh Nybegynder
25. oktober 2004 - 00:44 #5
Disse IFér skal se sådan ud..

  If intDag > 0 Then
    strTxt = strTxt & intDag & IIf(intDag = 1, " dag", " dage") & ", "
  End If

  If intTim > 0 Then
    strTxt = strTxt & intTim & IIf(intTim = 1, " time", " timer") & ", "
  End If

  If intMin > 0 Then
    strTxt = strTxt & intMin & IIf(intMin = 1, " minut", " minutter") & " og "
  End If
Avatar billede sovsekoder Nybegynder
25. oktober 2004 - 01:12 #6
en funktion som bruges flittigt i c++ er nok, TimeGetTime, som i VB kan bruges:

Declare Function timeGetTime Lib "winmm.dll" () As Long

...
Dim Count1 As Long
Count1 = timeGetTime()

se evt. følgende artikkel der diskutterer hvor præcise de forskellige "tids" funktioner er:
http://support.microsoft.com/kb/q172338/

...det er bestemt ikke for at fornærme nogen, men er det normalt at man poster et "svar", som er en implementering af min første kommentar?
Avatar billede sjh Nybegynder
25. oktober 2004 - 01:20 #7
sovsekoder > At du ved hvordan man skal regne den ud betyder jo ikke at du ved hvordan man laver koden.. Jeg tror nok at morteeart vil se lidt kode.. da han skriver "..og hvis ja, så hvordan ?"

men du kan jo bare smide et svar.. ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester