Avatar billede ahl Nybegynder
22. maj 2000 - 20:58 Der er 20 kommentarer og
1 løsning

function fra dato kl til dato kl "hvor mange timer" (forsat)

Ok, kig på http://www.eksperten.dk/spm.asp?id=17407, for at få der grundlæggende oplysninger.
Det jeg godt kunne tænke mig at kunne få det hele ud skrevet i dette format:
hh:mm:ss fx "01:23:45" eller 1 time og 23 minutter.
Avatar billede ahl Nybegynder
22. maj 2000 - 21:00 #1
uups. trykkede for hurtigt!!
Ok, kig på http://www.eksperten.dk/spm.asp?id=17407, for at få de grundlæggende oplysninger.
Det jeg godt kunne tænke mig, er at kunne få det hele ud krevet i disse formater:
hh:mm:ss fx "01:23:45" eller 1 time og 23 minutter. 

     
 
 
Avatar billede shj Nybegynder
22. maj 2000 - 21:21 #2
Hmmmmmm........ jeg sad med det samme spørgsmål igår, jeg tror nok at jeg vil gøre følgende.

Dim HoursMinute
HoursMinute=DateDiff("n", "#05/22/00 18:37 PM#, "#05/23/00 19:37 PM#
HoursMinute indeholder nu antal minutter mellem de to tidspunkter. For at få Timer minutter, kunne en fremgangsmåde være

HoursMinute = HoursMinute /60

Herefter formateres teksten.

Håber det kan give en ide!


Avatar billede ahl Nybegynder
22. maj 2000 - 21:24 #3
Kan du lave et script til mig??
Avatar billede shj Nybegynder
22. maj 2000 - 22:01 #4
Private Sub Times_And_Minuttes()
Dim HoursMinutte
'**********************************************************************'
'Denne procedure skal tages med absolut forbehold, Den er blot beregnet til en ide
' Der skal ligges nogle valideringer og "måske" en helt anden struktur
' men der kan da arbejdes videre fra dette udgangspunkt
'*****************************************************************************'
HoursMinute = DateDiff("n", #5/23/2000 12:55:00 AM#, #5/23/2000 2:00:00 AM#)
'***********Husk at checke og dato2 ikke er mindre en dato1
Dim Times, minutter
   
    If HoursMinute < 60 Then
        MsgBox HoursMinute & " Minutter"
    Else
        HoursMinute = HoursMinute / 60
        Times = Left(HoursMinute, 1)
        minutter = Mid(HoursMinute, 3, 2)
        minutter = minutter * 60 / 100

        MsgBox Times & " Time og " & CInt(minutter) & " Minutter"
End If

'***********************'
'kig på koden
'ret den
'svin den til
'gør hvad du vil
' men laver du en brugbar løsning
'så post den lige i spørsmålet ik! :-)

'Hilsen Simon
End Sub
Avatar billede winkill Nybegynder
22. maj 2000 - 22:09 #5
Følgende er nok ikke optimalt - but it gets the job done.

Kør Sub'en TestIt for at se hvordan outputtet bliver.

Function FormatTime(TheFormat As String) As String
    Dim Pos As Integer
    Dim FFlag As String
    Dim CFlag As String
    TheFormat = TheFormat & "!"
    For Pos = 1 To Len(TheFormat)
        CFlag = Mid(TheFormat, Pos, 1)
        If FFlag = "" Then
            If CFlag = "#" Then
                FFlag = "#"
            Else
                FormatTime = FormatTime & CFlag
            End If
        Else
            If FFlag = "#" Then
                FFlag = CFlag
            ElseIf Left(FFlag, 1) = CFlag Then
                FFlag = FFlag & CFlag
            Else
                Select Case Left(FFlag, 1)
                Case "h"
                    If Len(FFlag) = 2 And InStr(Pos - 3, Left(TheFormat, 4), ":") > 0 Then
                        FFlag = Left(Hour(Now), Len(FFlag))
                        If Len(FFlag) = 1 Then FFlag = "0" & FFlag
                    Else
                        FFlag = Left(Hour(Now), Len(FFlag))
                    End If
                    FormatTime = FormatTime & FFlag
                Case "m"
                    If Len(FFlag) = 2 And (Right(FormatTime, 1) = ":" Or CFlag = ":") Then
                        FFlag = Left(Minute(Now), Len(FFlag))
                        If Len(FFlag) = 1 Then FFlag = "0" & FFlag
                    Else
                        FFlag = Left(Minute(Now), Len(FFlag))
                    End If
                    FormatTime = FormatTime & FFlag
                Case "s"
                    If Len(FFlag) = 2 And InStr(Pos - 4, Left(TheFormat, 5), ":") > 0 Then
                        FFlag = Left(Second(Now), Len(FFlag))
                        If Len(FFlag) = 1 Then FFlag = "0" & FFlag
                    Else
                        FFlag = Left(Second(Now), Len(FFlag))
                    End If
                    FormatTime = FormatTime & FFlag
                Case "Y"
                    FormatTime = FormatTime & Left(Year(Now), Len(FFlag))
                Case "M"
                    FormatTime = FormatTime & Left(Month(Now), Len(FFlag))
                Case "D"
                    FormatTime = FormatTime & Left(Day(Now), Len(FFlag))
                Case "W"
                    FormatTime = FormatTime & Left(WeekdayName(Weekday(Now, vbMonday)), Len(FFlag))
                End Select
                FormatTime = FormatTime & CFlag
                FFlag = ""
            End If
        End If
    Next Pos
    FormatTime = Left(FormatTime, Len(FormatTime) - 1)
End Function

Private Sub TestIt()
    MsgBox FormatTime("Det er idag #WWWWWWW d. #DD/#MM-#YYYY" & vbCrLf & "Klokken er nu #hh:#mm:#ss.")
    MsgBox FormatTime("#hh:#mm:#ss")
    MsgBox FormatTime("#hh time(r) og #mm minutter.")
End Sub
Avatar billede winkill Nybegynder
22. maj 2000 - 22:10 #6
Husk at der er forskel på STORE og små bogstaver...
Avatar billede ahl Nybegynder
22. maj 2000 - 22:51 #7
Shj, kan du ikke lave et svar!!
Avatar billede shj Nybegynder
24. maj 2000 - 09:15 #8
ahl jo da! :-)hmmmm....... vil du have mig til at kode funktionen til dig eller er du tilfreds med det du har fået!

Avatar billede ahl Nybegynder
24. maj 2000 - 09:23 #9
Jeg er tilfreds!
Avatar billede ahl Nybegynder
26. maj 2000 - 12:58 #10
Jeg har glemt noget!
Hvordan gør jeg når mine datoer står i en streng fx:
Dim Dato1
Dim Dato2

Dato1 = "01-05-00 12:53:44"
Dato2 = "26-05-00 08:25:54"
Avatar billede shj Nybegynder
26. maj 2000 - 20:44 #11
Hej ahl, det kan du gøre på følgende måde.

Dim dato1 As String
Dim dato2 As String
dato1 = "22-05-2000 19:00"
dato2 = "23-05-2000 20:00"


MsgBox DateDiff("n", dato1, dato2)
Avatar billede ahl Nybegynder
27. maj 2000 - 15:57 #12
Det virker ikke i den her function som du har lavet!

Private Sub Times_And_Minuttes()
Dim HoursMinutte
Dim Times, minutter
   
    If HoursMinute < 60 Then
        MsgBox HoursMinute & " Minutter"
    Else
        HoursMinute = HoursMinute / 60
        Times = Left(HoursMinute, 1)
        minutter = Mid(HoursMinute, 3, 2)
        minutter = minutter * 60 / 100

        MsgBox Times & " Time og " & CInt(minutter) & " Minutter"
End If
End Sub
Avatar billede ahl Nybegynder
28. maj 2000 - 16:26 #13
Halloo!?
Avatar billede shj Nybegynder
28. maj 2000 - 17:13 #14
Det du skal, er at finde ud af, antal minutter, bliver i timer og minutter.

Det gøres ved minutter / 60 så har du antal timer.
f. eks 22,33 timer. Nu er problemet så at få de 33 koverteret om til minutter. Jeg har ikke lige en løsning på det, men prøv dig frem med forskellige beregninger. med et eks. Du kender det rigtige resultat af.
Jeg stillede jo selv spørgsmålet her i eksperten så jeg må også prøve mig frem.
Hilsen Simon
Avatar billede ahl Nybegynder
28. maj 2000 - 17:19 #15
Kan man ikke gøre sådan:

Dim Dato1
Dim Dato2

Dato1 = "5/23/2000 12:55:00"
Dato2 = "5/23/2000 2:00:00"
HoursMinute = DateDiff("n", #Dato1 AM#, #Dato2 AM#)
Avatar billede shj Nybegynder
28. maj 2000 - 18:19 #16
Hvilken version af vb bruger du?

Avatar billede ahl Nybegynder
30. maj 2000 - 00:14 #17
6
Avatar billede ahl Nybegynder
01. juni 2000 - 11:53 #18
halooo!
Vb 6
Avatar billede shj Nybegynder
01. juni 2000 - 19:01 #19
Dette her virker udemærket for mig.
Dim dato1 As String
Dim dato2 As String
dato1 = "22-05-2000 19:00"
dato2 = "23-05-2000 20:00"

MsgBox DateDiff("n", dato1, dato2)
  Du må ligesom også prøve dig frem, det er den eneste måde at lære det på. Der findes eksempler på mange hjemmesider. 
Avatar billede ahl Nybegynder
01. juni 2000 - 19:34 #20
jeg havde også fundet ud af det!!
det var bare det med # i dit eksempel!

Men jeg kan ikke finde ud af hvordan man finder ud af hvor lang tid en bruger har været på min side!
Avatar billede shj Nybegynder
01. juni 2000 - 21:22 #21
Nu er jeg ikke nogen haj til web og hjemmeside programmering, men der findes en masse code på www.netcoders.dk

#mm/dd/yy# er et dato format der bruges i USA. Da det jo er Amerikanere der har opfundet VB......
Kan man altid være sikker på at dette format vil virke hvis man ellers har gjort alt andet rigtigt. Hvid man .feks  vil søge i en database fra sit vb program, er det formatet man skal anvende.
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