webForumDet fria alternativet

Time()

ASP

7 svar · 1 212 visningar · startad av Tottemannen

Medlem sedan sep. 200620 inlägg
Frågan#1

Hej!
Nedanstående kod visar Natt oavsett vilken tid på dygnet det är.
Nån som ser vad som är fel?

<%

If Time() >="00:00:00" AND Time() <= "06:00:00" AND arcsinevelationangle <= -6 OR arcsinevelationangle >= 0 THEN
Response.write "Natt"

ElseIf Time() >= "06:00:01" AND Time() <= "09:00:00" AND arcsinevelationangle <= -6 OR arcsinevelationangle >= 0 THEN
Response.write "Morgon"

ElseIf Time() >= "09:00:01" AND Time() <= "12:00:00" AND arcsinevelationangle <= -6 OR arcsinevelationangle >= 0 THEN
Response.write "Formiddag"

ElseIf Time() >= "12:00:01" AND Time() <= "18:00:00" AND arcsinevelationangle <= -6 OR arcsinevelationangle >= 0 THEN
Response.write "Eftermiddag"

ElseIf Time() >= "18:00:01" AND Time() <= "22:00:00" AND arcsinevelationangle <= -6 OR arcsinevelationangle >= 0 THEN
Response.write "Kvall"

ElseIf Time() >= "22:00:01" AND Time() <= "23:59:59" AND arcsinevelationangle <= -6 OR arcsinevelationangle >= 0 THEN
Response.write "Natt"

ElseIf Time() <= "14:00:00" AND arcsinevelationangle >= -6 AND arcsinevelationangle <= 0 THEN
Response.write "Gryning"

ElseIf Time() > "14:00:00" AND arcsinevelationangle >= -6 AND arcsinevelationangle <= 0 THEN
Response.write "Skymning"

Else
Response.write "-"  

End If

%>
Medlem sedan juni 200032 967 inlägg
#2

Använd Hour(Now()) istället.

Medlem sedan sep. 200620 inlägg
#3

Tack. Ska prova det.

Men borde det inte fungera med Time() också?

Medlem sedan juni 200032 967 inlägg
#4

Om du jämför med ett tidvärde som om det vore en sträng (med citationstecken runt) så kommer det gå åt pipan. Om du ser till att dina tidvärden är av någon vettig subtyp (date till exempel) så kanske det går. Du kan ju alltid prova med # istället för citationstecken runt dina tider - # är avgränsare för datumvärden i asp.

Medlem sedan sep. 200620 inlägg
#5

Det fungerar inte med Hour(Now()).
Har också provat med

<%

Dim tidday
tid = Hour(now())

If tid >= 0 AND tid <= 6 AND arcsinevelationangle <= -6 OR arcsinevelationangle >= 0 THEN
Response.write "Natt"

osv...

Medlem sedan juni 20019 519 inlägg
#6

Vad har tid, arcsinevelationangle för värde när du testade att det inte fungerade?

Medlem sedan juni 200032 967 inlägg
#7

Så får du tänka på att det räcker med att arcsinelevationangle >0 för att det ska vara natt - då spelar inte tiden någon roll. Du får gruppera dina villkor i if-satsen.

If tid >= 0 AND tid <= 6 AND (arcsinevelationangle <= -6 OR arcsinevelationangle >= 0) THEN

And har högre precedens än or.

http://en.wikipedia.org/wiki/Order_of_operations

Medlem sedan sep. 200620 inlägg
#8

Jag löste det så här:

<%

If Time() > Cdate("00:00") and Time() <= Cdate("06:00") and (arcsinelevationangle <-6 or arcsinelevationangle >0) then
Response.Write "Natt"

ElseIf Time() > Cdate("06:00") and Time() <= Cdate("09:00") and (arcsinelevationangle <-6 or arcsinelevationangle >0) then
Response.Write "Morgon"

ElseIf Time() > Cdate("09:00") and Time() <= Cdate("12:00") and (arcsinelevationangle <-6 or arcsinelevationangle >0) then
Response.Write "Förmiddag"

ElseIf Time() > Cdate("12:00") and Time() <= Cdate("18:00") and (arcsinelevationangle <-6 or arcsinelevationangle >0) then
Response.Write "Eftermiddag"

ElseIf Time() > Cdate("18:00") and Time() <= Cdate("22:00") and (arcsinelevationangle <-6 or arcsinelevationangle >0) then
Response.Write "Kväll"

ElseIf Time() > Cdate("22:00") and (arcsinelevationangle <=-6 or arcsinelevationangle >=0) then
Response.Write "Natt"

ElseIf Time() <= Cdate("14:00") and arcsinelevationangle >=-6 and arcsinelevationangle <=0 then
Response.Write "Gryning"

ElseIf Time() > Cdate("14:00") and arcsinelevationangle >=-6 and arcsinelevationangle <=0 then
Response.Write "Skymning"

Else
Response.write "-"  

End If

%>
255 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)