14. januar 2004 - 14:04
Der er
25 kommentarer og 1 løsning
Timestamp formatering
Hejsa, jeg har en række timestamps som jeg gerne vil have skrevet på en bestemt måde.... De er alle integers, og nogle hedder eks. 5 hvor andre hedder 2,5 (og derfor er det samme som 2 og en halv time)... Nu vil jeg så gerne have skrevet alle timer ud, så der står eks. 2:30 i stedet for 2,5... Altså time:minut Mvh Peter
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
14. januar 2004 - 14:07
#1
Du kan da ikke have en integer der hedder 2,5..?
14. januar 2004 - 14:10
#2
Sorry, min fejl.. det er alle text.....
14. januar 2004 - 14:10
#3
...men er der en mere optimal en??
14. januar 2004 - 14:15
#4
Tjaeh, du kunne gemme dem som integers og så i halve timer? Altså hvor 2½ time bliver til 5 og 3 timer bliver til 6... Så kan du så få dem ud på flg. vis: (hvis var er variablen tallet ligger i) Response.Write ( var / 2 ) if var mod 2 = 1 then Response.Write ":30" end if Giver det mening?
14. januar 2004 - 14:17
#5
hmmm, jah det giver en smule mening... men ville det så ikke være smartest at gemme i minutter??
14. januar 2004 - 14:20
#6
Det kan du også gøre, kommer an på hvad den laveste enhed du tæller i er. Hvis var f.eks. er 150 (2½ time fordelt på minutter): Response.Write ( var / 60 ) & ":" & ( var mod 60 ) De skulle meget gerne udskrive 2:30.
14. januar 2004 - 14:21
#7
prøver den lige... har forresten set den der mod flere gange... hvad gør den???
14. januar 2004 - 14:24
#8
Hmm, den virker ikke optimalt.... tidsforbrug = 20 tidsforbrug = ( tidsforbrug / 60 ) & ":" & ( tidsforbrug mod 60 ) Giver: 0,333333333333333:20
14. januar 2004 - 14:25
#9
Den dividerer de to tal med hinanden og viser "resten". 150 mod 60 betyder f.eks., at den først dividerer tallene (150/60 = 2) og så bagefter returnerer 30, altså tallet der blev til overs fra divisionen. Mod står for modulus.
14. januar 2004 - 14:25
#10
OK, det er fordi den returnerer det første tal som et heltal istedet for at runde ned. Der er en funktion der forhindrer det, øjeblik.
14. januar 2004 - 14:26
#11
mkay, jeg er på standby... :)
14. januar 2004 - 14:29
#12
Prøv at lave "( var / 60 )" om til "Int( var / 60 )". Det burde runde ned.
14. januar 2004 - 14:39
#13
Det runder lidt for langt ned... hehe, det giver faktisk et 0
14. januar 2004 - 14:51
#14
Og heller ikke noget efter kolonet? Så prøv at lave "( tidsforbrug mod 60 )" om til "( ( tidsforbrug + 60 ) mod 60 )". Det burde afhjælpe sådan et problem.
14. januar 2004 - 15:00
#15
jo, efter kolon'et er det helt korrekt
14. januar 2004 - 15:10
#16
Jamen, passer det ikke meget godt så? 20 minutter er jo også 0 timer og 20 minutter.
14. januar 2004 - 15:11
#17
ikke hvis jeg sætter den til 150 minutter...
14. januar 2004 - 15:14
#18
Nå, jeg fik det selv til at fungere... tidsforbrug = replace(formatnumber(( tidsforbrug / 60 ), 2), right(formatnumber(( tidsforbrug / 60 ), 2), 3), "")& ":" & ( tidsforbrug mod 60 ) Ved godt det er lidt noget fusk, men det virker... :/
14. januar 2004 - 15:25
#19
Timerne er gode nok for at komme fra minutter til 100'dele kan du dividere med 60 og gange med 100. str = "2:30" arr = split(str,":") str = arr(0) & "," & Int(arr(1)*100/60)
14. januar 2004 - 15:28
#20
hmmm eagleeye.... hvordan skal koden så se ud???
14. januar 2004 - 15:28
#21
Som vist
14. januar 2004 - 15:30
#22
2:30 kommer sikkert fra en kolonne i databasen og det kan skrive på to linjer og ikke nødvedigvis 3: arr = split(rs("kolonnenavn"),":") str = arr(0) & "," & Int(arr(1)*100/60) Response.Write str
14. januar 2004 - 15:45
#23
Hov det omvendt ;)) Det var fra 100'dele til minutter. Så det bare dividere med 100 og gange med 60, husk der er forskel på at skrive 2,5 og 2,50. 2,5 vil tolkes som 2,05 hvis man ikke laver lidt kode som skifre der er nok 0'er str = "2,5" arr = split(str,",") arr(1) = Left(arr(1)&"0",2) str = arr(0) & "," & Int(arr(1)*60/100) Response.Write str
14. januar 2004 - 15:48
#24
og så skal "," rettes til ":" i linjen lige før Response.Write og så kan man lige sætte en Right på også sådan den skriver 2:09 og ikke 2:9 str = "2,5" arr = split(str,",") arr(1) = Left(arr(1)&"0",2) str = arr(0) & ":" & Right("0" & Int(arr(1)*60/100),2) Response.Write str
15. januar 2004 - 08:38
#25
Heh, var vidst gået hjem igår da du skrev... MEN!! Jeg er ikke helt med... I min database registrerer jeg antallet af minutter der er brugt på en opgave... Lad os sige 250 minutter. Det er 2½ time... Nu skal jeg så bare have det vist på en mere brugervenlig måde... Så der ikke står 250 minutter men i stedet 2:30 How?
15. januar 2004 - 16:37
#26
Er det ændre?? i spørgsmålet står der "De er alle integers, og nogle hedder eks. 5 hvor andre hedder 2,5" Men ok fra minutter til timer og minutter: tal = 250 hours = Int(tal/60) mins = Right("0" & (tal - hours*60),2) str = hours & ":" & mins Response.Write str
Kurser inden for grundlæggende programmering