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


Hjälp med if-sats!

Postades av 2003-05-08 13:14:25 - Jari Piira, i forum visual basic - allmänt, Tråden har 6 Kommentarer och lästs av 505 personer

Hej!
Skulle behöva hjälp med en if-sats som jag håller på att bli tokig på. Säkert väldigt simpel, men det kan vara skönt om någon annan kan kika på den.

Den ska fungera så att jag har ett klockslag(sTid) som jag sedan jämför med när jag la mig(sLaSig) och när jag klev upp(sStegUpp). All tid mellan sLaSig och sStegUpp ska vara nattid, annars är det dagtid.

Har testat några satser men inte fått det att fungera i alla lägen.
Eftersom jag kör med AND just nu måste ju båda villkoren slå in, men det gör det ju inte ibland.

Om vi säger att sTid är 19:00, sLaSig är 00:10 och sStegUpp är 04:00 ska ju det bli dagtid, men det blir det ju inte.

Men det funkar ju om jag lägger mig ex.vis 22:45.

Förslag?

Nuvarande kod:

'Kollar om det är dagtid eller nattid
<code>
If sTid <= sLaSig And sTid >= sStegUpp Then
dSysDag = dSysDag + iTal
dDiaDag = dDiaDag + iTal2
dMedelTryckDag = dMedelTryckDag + iTal3
dPulsFrekvensDag = dPulsFrekvensDag + iTal4
i2 = i2 + 1
Else
dSysNatt = dSysNatt + iTal
dDiaNatt = dDiaNatt + iTal2
dMedelTryckNatt = dMedelTryckNatt + iTal3
dPulsFrekvensNatt = dPulsFrekvensNatt + iTal4
i3 = i3 + 1

End If
</code>

VB 6


Svara

Sv: Hjälp med if-sats!

Postades av 2003-05-08 14:42:32 - Mattias Lindberg

Problemet är väl att du jobbar med strängar och inte DateTime klassen. Om du har denna info lagrad någonstans så bör du lagra både datum och tid.

Att påstå "I fredags gick jag och lade mig 0200 och på lördagen gick jag upp 0800". Eftersom du inte gick och lade sig i fredags, utan i lördags, så kommer jämförelser med tider under fredagen misslyckas. Om du däremot säger att "min nattsömn mellen fredag och lördag inträffade mellan lör 02 och lör 08" så kan du jämföra med en tid på fredagen ganska enkelt.

Så min rekommendation är att byta lagringsform till koplett datum och tid för din statistik, då kommer allt lösa sig.

/Mattias


Svara

Sv: Hjälp med if-sats!

Postades av 2003-05-08 14:51:02 - Pontus Stenberg

kan inte det ha att göra med midnattsskiftet att göra? det lättaste för att slippa mycket kod kanske är att låta 01:00 bli 25:00? då blir det aldrig midnatt...

annars kanske du kan lägga in någon dag-funktion så att det jämför vilket dag det är också? det skulle fylla i princip samma funktion som att låta 1:00 bli 25:00; du låter nästa dag göra 24-timmars-tillägget...

//Pontus


Svara

Sv: Hjälp med if-sats!

Postades av 2003-05-08 17:02:13 - Håkan Borneland

Hej!

För att din IF sats ska fungera, så måste du "bifoga" datum så den kan känna av "rätt" (som Mattias skrev).
Om du fortfarande vill använda strängar (tolkar det som strängar då du använder prefixet s framför dina variabler),
tilldela dem datum och tid med funktionen "Now()", och ändra dem till strängar med CStr.
Ex.
<code>
sTid = CStr(Now)
</code>
/Håkan






Svara

Sv: Hjälp med if-sats!

Postades av 2003-05-08 21:01:03 - Andreas Hillqvist

Det skulle kunderlätta för dig om du istället användar med fullständiga tidpunkter, datum och tid. Du kan då lättare kontrollera om ett värde är taget dagtid eller natttid. Att göra på något annat sätt anser jag vara fel.

Härr följer ett litet exempel på hur du arbetar med fullständiga tidpunkert(Datatypen date i vb):
<code>
Dim Tid As Date
Dim LaSig As Date
Dim StegUpp As Date
Tid = CDate("2003-5-8 19:00")
LaSig = CDate("2003-5-8 00:10")
LaSig = CDate("2003-5-8 04:00")

Select Case Tid
Case sLaSig To sStegUpp
dSysNatt = dSysNatt + iTal
dDiaNatt = dDiaNatt + iTal2
dMedelTryckNatt = dMedelTryckNatt + iTal3
dPulsFrekvensNatt = dPulsFrekvensNatt + iTal4
i3 = i3 + 1
Case Else
dSysDag = dSysDag + iTal
dDiaDag = dDiaDag + iTal2
dMedelTryckDag = dMedelTryckDag + iTal3
dPulsFrekvensDag = dPulsFrekvensDag + iTal4
i2 = i2 + 1
End Select
</code>

Om du skall skriva ett "bra" program bör du göra det så att det kan hatera att man kan lägga sig över midnatt och flera gånger under ett dygn.


Om du då lagrar under vilka intervaller man lagt sig med fullständig tidpunk. KAn du sammanställa om det värdena är "dag"- eller "natt"-tider direkt i SQL-frågan.

Access SQL:

SELECT *, EXISTS (SELECT Null
FROM SovTid
WHERE Mätvärden.Person = SovTid.Person AND Mätvärden.Tidpunkt BETWEEN SovTid.LaSig AND SovTid.StegUpp ) As
FROM Mätvärden


Svara

Sv: Hjälp med if-sats!

Postades av 2003-05-13 11:18:17 - Jari Piira

Det här med datum tänkte jag inte på, inte undra på att det blev fel. Har nu lagt till datum till tiden och nu funkar jämförelserna.
Kul att man får hjälp så snabbt här.
Tack för hjälpen!


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 166
27 952
271 704
1 539
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