Avatar billede myst1098 Nybegynder
15. juni 2006 - 20:47 Der er 17 kommentarer og
1 løsning

tid + tid + tid osv.

Jeg skal lægge 5 timetal sammen men får problemer når totalen overstiger 24 timer.

f.eks.
23:45 + 05:00 skal give 25:45 og ikke 31-12-1899 01:45:00
Avatar billede excelent Ekspert
15. juni 2006 - 21:43 #1
bruger formater cellen som :  [tt]:mm
Avatar billede myst1098 Nybegynder
15. juni 2006 - 21:55 #2
Ja, det er nemt nok i excel. Men det her er altså VB kategorien :o))
Avatar billede excelent Ekspert
15. juni 2006 - 23:51 #3
Avatar billede martin_moth Mester
16. juni 2006 - 10:47 #4
Jeg er ikke helt med - hvilken variabeltype bruger du?
Avatar billede myst1098 Nybegynder
16. juni 2006 - 11:15 #5
excelent >

Jeg kan altså ikke bruge dit excel eksempel til noget som helst. Mit spørgsmål handler om VB6 !!

Martin >

Jeg har bl.a. forsøgt med "date". Nedenstående illustrerer hvad jeg mener. Jeg så i øvrigt lige at jeg skrev forkert i selve spørgsmålet. 23:45 + 05:00 skulle selvfølgelig blive til 28:45 ...

a = "23:45"
c = DateAdd("h", 2, a)
MsgBox (c)
Avatar billede myst1098 Nybegynder
16. juni 2006 - 11:27 #6
Nu kan jeg jo nok ikke nøjes med at bruge dateadd da jeg skal kunne lægge skæve tidspunkter sammen. Altså med både timer og minutter.

Det er til at beregne antal arbejdstimer på en uge.
Avatar billede thomaxz Nybegynder
16. juni 2006 - 14:05 #7
en måde man kunne gør det på var at lægge timer til for sig selv og minuter til for sig selv

eks. dit ekseple

25+5=28
45+0=45

hvis tider var 23:45 og 5:30 eks.

25+5=28
45+50=75
75-60=15
28+1=29

=29:15

altås hvis minuter bliver støre end 60, træk 60 fra. og læg en time til
bliv ved intil minuter mindre ned 60.
Avatar billede martin_moth Mester
16. juni 2006 - 15:02 #8
Du behøver ikke "blive ved" - munutter vil aldrig blive størrer end 118. Så du skal max trække det fra een gang.

Men med ovenstående svar, skal du "skille" dine timer og minutter ad - hvis du før dem fra en textfil e.l. skal du altså spiltte ad så du har minutter og timer for sig...

Lettere hvis du lige fortalte hvor de der timer og minutter kommer fra - er det nogen der bare bliver tastet i en textbox, kan du jo bare soplitte det så der er en textbox til minutter og en til timer...
Avatar billede dragonknight Juniormester
16. juni 2006 - 15:12 #9
Hvis du formaterer cellerne med dine indtaste tider med tt:mm, og i de celler du har addition eller subtraktion (formelceller), der formaterer du med [t]:mm:ss så vil den betragte dine sammenlægninger som en tidsperiode, og ikke et tidspunkt. Når den starter forfra ved 24:00 er det jo fordi den tror den skal opgive et tidspunkt, hvilket jo ikke er det du vil have.
Avatar billede thrytter Nybegynder
16. juni 2006 - 15:52 #10
Ved ikke om dette kan være en hjælp

Det nemmeste vil være at:
  - omregn timetallene til minutter
  - læg de omregnede minuttal sammen
  - summen heltalsdivideret med 60 giver samlet timeantal
  - summen modulus 60 giver samlet minuttal

Eks
  Timetal1: 23:45
  Timetal2: 05:00

  Minutter1 = 23 * 60 + 45 = 1425
  Minutter2 = 05 * 60 + 00 = 300
  Sum minutter = 1425 + 300 = 1725

  Samlet timer = 1725 DIV 60 = 28
  Samlet minutter = 1725 MOD 60 = 45

Burde nemt kunne laves i en funktion
Avatar billede dragonknight Juniormester
16. juni 2006 - 17:17 #11
Hvorfor alle de krumspring, når netop formateringen med [t]:mm:ss i formelcellen giver samme resultat.

Har anvendt det tusindvis gange i logbøger og timesedler. Det virker.
Avatar billede martin_moth Mester
16. juni 2006 - 17:24 #12
"formelcellen" ?

Det er jo ikke excel
Avatar billede dragonknight Juniormester
16. juni 2006 - 23:33 #13
hahahahahaha, læste ikke kategorien, men fik target fixation da jeg læste excelent's første indlæg. Sorry about that :-)
Avatar billede martin_moth Mester
17. juni 2006 - 09:30 #14
Det blev ellers kun nævnt 3 gange i dette spørgsmål, at det var excel ;o)
Avatar billede myst1098 Nybegynder
17. juni 2006 - 14:04 #15
Tak for alle indlæg. også fra Excel folkene der var havnet i forkert kategori :o))

Jeg har for så vidt selv løst det ved at gøre lidt i stil med thrytters forslag. Nemlig at omregne det hele til minutter og så dividere det med 60.

Det giver et decimaltal hvor decimalerne divideres med 100 og ganges med 60. Så får jeg timtallet og minuttallet samlet i korrekt tidsformat.

Jeg undrede mig bare over at VB ikke kune klare det direkte.
Avatar billede excelent Ekspert
17. juni 2006 - 14:25 #16
Hour("23:45") = 23
Minute("23:45") = 45

findes der virkelig ikke lignende i VB6
Avatar billede myst1098 Nybegynder
18. juni 2006 - 20:14 #17
thrytter >

Smid et svar, du var trods alt nærmest :o)
Avatar billede thrytter Nybegynder
18. juni 2006 - 20:48 #18
Og det gør jeg så
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