Avatar billede lasserasch Juniormester
10. september 2005 - 15:52 Der er 11 kommentarer og
1 løsning

Formattere fra Millisekunder til Min/Timer?

Hejsa....

Jeg har følgende stykke kode. Hvis jeg udskriver koden er resultatet : 0,3333333333333330


Det tal skulle gerne være resultatet af 2 tidsregistreringer jeg trækker fra hinanden (TimeStamps).

Hvordan pokker får jeg dem konverteret, så jeg skal udskrive nogle bruge bare informationer??? Dvs. jeg ønsker at få en variabel med Timer og en med Minutter.

Jeg går ud fra at det er noget med at man skal dividere og gange, men jeg kan ikke lige gennemskue hvad der skal ganges med hvad osv.

En hjælpende hånd ville være dejligt!



----------------



<% Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open "SELECT SUM((USER_CHECK_OUT-USER_CHECK_IN)/24/60/60/1000) ON_WORK " &_
"FROM register WHERE ( CUSTOMER=8616 AND '2005-09-08 05:00'<=USER_CHECK_IN AND USER_CHECK_IN<'2005-09-09 05:00') ",strConnect
----------------



/Lasse
Avatar billede busschou Praktikant
10. september 2005 - 16:05 #1
1 milisekund er vel en tusindedel sekund
Så hvis du dividerer med 1000 så har du antal sekunder, og derfra kan du så igen divider med 60for at få antal minutter og så igen dividere med 60 for at få antal timer
Du har jo selv skrevet den omvendte i din sql som "(USER_CHECK_OUT-USER_CHECK_IN)/24/60/60/1000)" :o)
--
Men man kan jo så sige at hvis du får 0,33333 mili sekunder, ja så er det ikke særlig spændende at regne om da det giver 0min og 0timer
Avatar billede softspot Forsker
10. september 2005 - 16:18 #2
På den anden side er det vel også rimeligt at en person som kun har været på arbejde i 0,33333 millisekunder ikke bliver beregnet som til stede ;D

Bort set fra det, så synes jeg det ser ud til at du har regnet om i dage, hvilket jo giver mening (altså omkring 8,5 timer). Jeg tror din SQL skal se nogenlunde således ud:

SELECT
  SUM((USER_CHECK_OUT-USER_CHECK_IN)/60/60/1000) + ':' + SUM((USER_CHECK_OUT-USER_CHECK_IN)/60/1000) ON_WORK
FROM
  register
WHERE
  CUSTOMER=8616
  AND '2005-09-08 05:00' <= USER_CHECK_IN
  AND USER_CHECK_IN<'2005-09-09 05:00'
Avatar billede lasserasch Juniormester
11. september 2005 - 00:43 #3
Ok. Jeg har nu fået styr på begregningen af antal brugte timer pr. medarbejder gruppe, som jeg var ude efter.

Jeg har fået lavet det hele om til en stor SQL, så går det lige 20 gange stærkere.

Jeg får nu printet mit resultatet ud i min. F.eks. : 1445 min.
Hvis jeg dividerer med 60 får jeg jo timer. Men det bliver et sindsygt tal som hedder : 24,0833333333333

Det skulle jo gerne blive til et brugbart tal med antal timer og antal min. ala XX Timer XX Min.

Nogen ide om hvordan man får 1445 MIN til at se pænt ud med angivelse af antal timer og min????
Avatar billede softspot Forsker
11. september 2005 - 00:50 #4
Det må være noget med at dividere med 60 som du har gjort og konvertere til et heltal for at få timer og så modulus 60 for at få minutter. Altså

TotalTid = 1445
GruppeTid = CStr(CInt(TotalTid / 24)) & ":" & CStr(TotalTid MOD 60)
Avatar billede softspot Forsker
11. september 2005 - 00:51 #5
Møj! Det skulle vel være

TotalTid = 1445
GruppeTid = CStr(CInt(TotalTid / 60)) & ":" & CStr(TotalTid MOD 60)
Avatar billede softspot Forsker
11. september 2005 - 00:55 #6
...og hvis der skal nul foran etcifrede minuttal, så kan man f.eks. gøres således:

GruppeTid = CInt(TotalTid / 60) & ":" & Right("00" & (TotalTid mod 60), 2)
Avatar billede lasserasch Juniormester
11. september 2005 - 00:59 #7
Ja, GruppeTid = CStr(CInt(TotalTid / 60)) & ":" & CStr(TotalTid MOD 60) giver resultatet : 24:5

Det er så 24 Timer og 50 Min eller 24 Timer og 5 Min????
Avatar billede softspot Forsker
11. september 2005 - 00:59 #8
Kig lige på svaret fra 11/09-2005 00:55:32
Avatar billede lasserasch Juniormester
11. september 2005 - 01:01 #9
hehe.... Sorry!
Avatar billede softspot Forsker
11. september 2005 - 01:02 #10
No problemo - synes selv det er lidt svært at følge med herinde, det kan godt gå lidt stærkt engang imellem :)
Avatar billede softspot Forsker
11. september 2005 - 01:04 #11
Tak for point :)
Avatar billede lasserasch Juniormester
11. september 2005 - 01:05 #12
No problemo!
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