Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Problem med tid

Postades av 2003-04-02 19:23:58 - Niclas Söderlund, i forum visual basic - allmänt, Tråden har 8 Kommentarer och lästs av 495 personer

Har ett gäng med textfält som det matas in tid i. Textfälten är indelade parvis och tidsskillnaden räknas ut mellan starttiden och sluttiden

Dim timeOne As Date
Dim timeTwo As Date
'o.s.v.

If txtScheMSP1.Text > txtScheMEP1 Then
timeOne = TimeSerial(0, (DateDiff("n", txtScheMSP1.Text, txtScheMEP1.Text) + 1440), 0)
Else
timeOne = TimeSerial(0, (DateDiff("n", txtScheMEP1.Text, txtScheMSP1.Text)), 0)
End If
If txtScheTuSP1.Text > txtScheTuEP1 Then
timeTwo = TimeSerial(0, (DateDiff("n", txtScheTuSP1.Text, txtScheTuEP1.Text) + 1440), 0)
Else
timeTwo = TimeSerial(0, (DateDiff("n", txtScheTuEP1.Text, txtScheTuSP1.Text)), 0)
End If
'o.s.v.

Nu vill jag lägga ihop tiderna
txtSummaTid.Text = timeOne + timeTwo 'o.s.v.
Inga problem så länge tiden är under 23h 59m, blir tiden 24h så får jag 1899-12-29 i txtSummaTid.

Testade med
txtSummaTid.Text = Format(timeOne + timeTwo + o.s.v, "Hh:Nn:Ss")
Då får jag 01:00:00 när det är 25h.

Hur skall jag göra för att få det att bara visa timmar, minuter och ev. sekunder (sekunder är inte nödvändigt)


Svara

Sv: Problem med tid

Postades av 2003-04-02 20:56:26 - Andreas Hillqvist

Jag skulle gjort på följande sätt:
<code>
Public Function ValidateTime(Value As String) As Boolean
If IsDate(Value) Then
Select Case CDate(Value)
Case 0 To 1
ValidateTime = True
End Select
End If
End Function

Public Function TimeDiff(Value1 As Date, Value2 As Date) As Date
If Value1 > Value2 Then
TimeDiff = Value1 - Value2 + 1
Else
TimeDiff = Value2 - Value1
End If
End Function

Private Sub Command1_Click()
Dim Total As Date
Dim strMSG As String

If Not ValidateTime(txtScheMSP1) Then
strMSG = strMSG & "ScheMSP1" & vbCrLf
End If
If Not ValidateTime(txtScheMEP1) Then
strMSG = strMSG & "ScheMEP1" & vbCrLf
End If
If Not ValidateTime(txtScheTuSP1) Then
strMSG = strMSG & "ScheTuSP1" & vbCrLf
End If
If Not ValidateTime(txtScheTuEP1) Then
strMSG = strMSG & "ScheTuEP1" & vbCrLf
End If
If Len(strMSG) > 0 Then
MsgBox "Du har inte angivit giltligt värde i:" & vbCrLf & strMSG, vbExclamation
Else
Total = TimeDiff(txtScheMSP1.Text, txtScheMEP1.Text)
Total = Total + TimeDiff(txtScheTuSP1.Text, txtScheTuEP1)

MsgBox Int(Total * 24) & ":" & Right("00" & Minute(Total), 2) & ":" & Right("00" & Second(Total), 2)
End If
End Sub
</code>
Det kanske kan var till någon hjälp?


Svara

Sv: Problem med tid

Postades av 2003-04-02 22:56:33 - Niclas Söderlund

Tack!
Skall begrunda koden och se om jag kan förstå och få det att funka... :)


Svara

Sv: Problem med tid

Postades av 2003-04-03 22:39:48 - Niclas Söderlund

Med lite modifieringar så passade det utmärkt fast nu har jag kört fast igen... :(

Istället för att skriva till en msgBox så skriver jag till ett textfält
txtSummaP1 Int(Total * 24) & ":" & Right("00" & Minute(Total), 2) & ":" & Right("00" & Second(Total), 2)

Har 6 st. fält, txtSummaP1, txtSummaP2....txtSummaP6
Nu skall dessa 6 fält summeras och det är där det går åt pipan.
Tycker inte att det borde vara någon skillnad på koden nedan och den ovan men funkar gör det i alla fall inte

Private Sub txtTotPer_Click()
'On Error GoTo ErrorHandler
Dim totP1 As Date, totP2 As Date, totP3 As Date, totP4 As Date, totP5 As Date, totP6 As Date
totP1 = txtSummaP1
totP2 = txtSummaP2
totP3 = txtSummaP3
totP4 = txtSummaP4
totP5 = txtSummaP5
totP6 = txtSummaP6
TotalTid = totP1 + totP2 + totP3 + totP4 + totP5 + totP6
txtTotPer.Text = Int(TotalTid * 24) & ":" & Right("00" & Minute(TotalTid), 2)
ErrorHandler:
If (Err.Number = 13) Then
MsgBox "Fel inmatning i något textfält"
End If
End Sub

När tiden blir över 24h så får jag felmeddelande :(
Hur gör jag?


Svara

Sv: Problem med tid

Postades av 2003-04-03 22:54:10 - Andreas Hillqvist

Nu gissar jag lite. Men är det så att du har använt tidigare funktion för att summera dessa värden till txtSumma? Att det då T.Ex innehåller 25:00?
Efter som detta inte är en giltlig tidsangivelse kan du inte lagra det i ett datum variabel.

Har gjort en funktion för dig:
<code>
Function ToDate(Value As String) As Date
Dim Data() As String
Data = Split(Value, ":", 2)
ToDate = TimeSerial(Data(0), Data(1), 0)
End Function

Private Sub txtTotPer_Click()
'On Error GoTo ErrorHandler
Dim TotalTid As Date
TotalTid = ToDate(txtSummaP1)
TotalTid = TotalTid + ToDate(txtSummaP2)
TotalTid = TotalTid + ToDate(txtSummaP3)
TotalTid = TotalTid + ToDate(txtSummaP4)
TotalTid = TotalTid + ToDate(txtSummaP5)
TotalTid = TotalTid + ToDate(txtSummaP6)
txtTotPer.Text = Int(TotalTid * 24) & ":" & Right("00" & Minute(TotalTid), 2)
ErrorHandler:
If (Err.Number = 13) Then
MsgBox "Fel inmatning i något textfält"
End If
End Sub
</code>

Det är bättre att hindra fel från att uppstå med en kontroll. Än att fånga felet. Eftersom du då har mer kontroll.


Svara

Sv: Problem med tid

Postades av 2003-04-03 23:37:20 - Niclas Söderlund

Run-time Error '13':
Type mismatch
på raden
ToDate = TimeSerial(Data(0), Data(1), 0)
?????


Svara

Sv: Problem med tid

Postades av 2003-04-03 23:56:20 - Andreas Hillqvist

Du har inte svarat på frågerna jag stälde i mit inlägg.

Vad är txtSummaP1, txtSummaP2, osv? Vilket format har de?


Svara

Sv: Problem med tid

Postades av 2003-04-04 00:09:18 - Niclas Söderlund

Tänk på att jag är nybörjare :), sträng, tror jag
txtSummaP5.Text = Int(Total * 24) & ":" & Right("00" & Minute(Total), 2)


Svara

Sv: Problem med tid

Postades av 2003-04-04 14:27:23 - Niclas Söderlund

Andreas Hillqvist, naturligtvis så funkade din lösning, det var skit bakom spakarna här.
Hade ett textfält där det var ifyllt 00:00:00 och då gick det åt pipan.

Tack för hjälpen! :o)


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 167
27 952
271 704
697
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies