|
| Date variable Fra : Kristian Pelle |
Dato : 27-01-01 18:20 |
|
Hejsa...
Når man laver en variable (Date) med tid, så hedder det ("hh.mm.ss") For
timer minutter sekunder. Hvad hvis man vil lave millisekunder, hvad hedder
det så. Er det overhovedet muligt?
-Quane
OvEr AnD oUt!
--[Mess with the BEST, die like the REST]--
| |
Steven Bergstedt (27-01-2001)
| Kommentar Fra : Steven Bergstedt |
Dato : 27-01-01 18:20 |
|
kristian.pelle@get2net.dk (Kristian Pelle) wrote in <gpla6.185$qs3.6132
@news.get2net.dk>:
>Hejsa...
>Når man laver en variable (Date) med tid, så hedder det ("hh.mm.ss") For
>timer minutter sekunder. Hvad hvis man vil lave millisekunder, hvad hedder
>det så. Er det overhovedet muligt?
>
>-Quane
>OvEr AnD oUt!
>
> --[Mess with the BEST, die like the REST]--
>
>
>
Det er faktisk rigtig simpelt! det eneste du skal gøre er, at sætter din timer
til at opdateret hurtigere Et eksempel:
Hvis du ønsker den skal opdatere hvert 10 millisekund sætter du bare timerens
interval=10 eller bare interval=1 hvis du ønsker den skal opdatere hvert
millisec.
//Best regards
^Segal^ - Steven Bergstedt
| |
Tomas Christiansen (27-01-2001)
| Kommentar Fra : Tomas Christiansen |
Dato : 27-01-01 18:20 |
|
Steven Bergstedt skrev:
> Hvis du ønsker den skal opdatere hvert 10 millisekund sætter du bare
timerens
> interval=10 eller bare interval=1 hvis du ønsker den skal opdatere hvert
> millisec.
Det er meget muligt, at man har muligheden for at indstille timeren til 1
millisekund, problemet er blot, at hardwaren ikke understøtter det!
Har du prøvet at se hvor ofte du i virkeligheden får dine timer-events?
En lille test på min PC, viste at der højst kommmer 64 timer-events i
sekundet (svarende til en frekvens på 15625Hz).
Med andre ord giver værdierne 1..15 for Timer.Interval det samme resultat,
nemlig 64 events pr. sekund, hvorimod værdien 16 giver 40 events pr. sekund,
værdierne 17..31 giver 32 events osv. osv. osv.
Bemærk, at de pågældende tal for antallet af events pr. sekund er
MAKSIMUM-værdier. Hvis det tager så lang tid at udføre event-proceduren, at
der i mellemtiden er kommet et nyt event, bliver det nye event, så vidt jeg
har erfaret, blot ignoreret.
-------
Tomas
| |
Tomas Christiansen (27-01-2001)
| Kommentar Fra : Tomas Christiansen |
Dato : 27-01-01 18:20 |
|
Kristian Pelle skrev:
> Når man laver en variable (Date)...
> Hvad hvis man vil lave millisekunder
Det er faktisk et rigtigt godt spørgsmål.
Datoer og tidspunkter gemmes som et kommatal, hvor cifrene til venstre
kommaet beskriver datoen, og cifrene til højre for kommaet beskriver
tidspunkter.
Værdien 0,5 er <ingen dato> klokken 12:00:00 midt på dagen.
Opløsningen - hvis man bruger VB indbyggede rutiner - er 1 sekund, og der er
86400 sekunder på et døgn.
Værdien af tidspunktet 23:59:59 (dvs. det 86399'te sekund på dagen) bliver
derved 86399/86400 = 0,9999884259259259...
Hvis jeg ønsker at lægge en tiendedel sekund til et tidspunkt, skal jeg
altså blot addere værdien 1/864000 = 0,00000115740740...
Her er et lille eksempel på, at lægge tidspunktet 01:02:03:45 ind i en Date
variabel, og efterfølgende udtrække cifrene igen:
Dim t As Date
t = TimeSerial(1, 2, 3) + _
CDbl(4 / 864000) + _
CDbl(5 / 8640000)
Debug.Print Hour(t), Minute(t), Second(t), _
t * 864000 Mod 10, _
t * 8640000 Mod 10
Dette kan naturligvis gøres langt smartere, men det er blot et eksempel, som
skal vise hvor enkelt det i princippet er, at benytte tienddele sekunder,
hundrededele eller endnu finere opløsning i forbindelse med datatypen Date.
Præcis HVOR grænsen er, har jeg ikke lige fundet ud af.
-------
Tomas
| |
|
|