webForumDet fria alternativet

Mindre kod för detta?

ASPur ASP

3 svar · 268 visningar · startad av Hulth

HulthMedlem sedan juni 2001272 inlägg
#1

Jag änvänder följande kod:

<%

	If date = "12/3/01" OR date = "2001-12-03" Then Session("advent") = "1" End If
	If date = "12/4/01" OR date = "2001-12-04" Then Session("advent") = "1" End If
	If date = "12/5/01" OR date = "2001-12-05" Then Session("advent") = "1" End If
	If date = "12/6/01" OR date = "2001-12-06" Then Session("advent") = "1" End If
	If date = "12/7/01" OR date = "2001-12-07" Then Session("advent") = "1" End If
	If date = "12/8/01" OR date = "2001-12-08" Then Session("advent") = "1" End If
	If date = "12/9/01" OR date = "2001-12-09" Then Session("advent") = "1" End If

	If date = "12/10/01" OR date = "2001-12-10" Then Session("advent") = "2" End If
	If date = "12/11/01" OR date = "2001-12-11" Then Session("advent") = "2" End If
	If date = "12/12/01" OR date = "2001-12-12" Then Session("advent") = "2" End If
	If date = "12/13/01" OR date = "2001-12-13" Then Session("advent") = "2" End If
	If date = "12/14/01" OR date = "2001-12-14" Then Session("advent") = "2" End If
	If date = "12/15/01" OR date = "2001-12-15" Then Session("advent") = "2" End If
	If date = "12/16/01" OR date = "2001-12-16" Then Session("advent") = "2" End If

	If date = "12/17/01" OR date = "2001-12-17" Then Session("advent") = "3" End If
	If date = "12/18/01" OR date = "2001-12-18" Then Session("advent") = "3" End If
	If date = "12/19/01" OR date = "2001-12-19" Then Session("advent") = "3" End If
	If date = "12/20/01" OR date = "2001-12-20" Then Session("advent") = "3" End If
	If date = "12/21/01" OR date = "2001-12-21" Then Session("advent") = "3" End If
	If date = "12/22/01" OR date = "2001-12-22" Then Session("advent") = "3" End If
	If date = "12/23/01" OR date = "2001-12-23" Then Session("advent") = "3" End If

	If date = "12/24/01" OR date = "2001-12-24" Then Session("advent") = "jul" End If
	If date = "12/25/01" OR date = "2001-12-25" Then Session("advent") = "juldag" End If
	If date = "12/26/01" OR date = "2001-12-26" Then Session("advent") = "annandag" End If
	If date = "12/27/01" OR date = "2001-12-27" Then Session("advent") = "4" End If
	If date = "12/28/01" OR date = "2001-12-28" Then Session("advent") = "4" End If
	If date = "12/29/01" OR date = "2001-12-29" Then Session("advent") = "4" End If
	If date = "12/30/01" OR date = "2001-12-30" Then Session("advent") = "4" End If
	If date = "12/31/01" OR date = "2001-12-31" Then Session("advent") = "new" End If
	If date = "01/01/02" OR date = "2002-01-01" Then Session("advent") = "new" End If

	If Session("advent") = "jul" OR Session("advent") = "juldag" OR Session("advent") = "annandag" OR Session("advent") = "new" Then
	Response.Write "<br><br>"
	Response.Write "<font size=""1"" face=""verdana"">"
		vad = Session("advent")
			If vad = "jul" Then Response.Write "<b>GOD JUL</b>" End If
			If vad = "juldag" Then Response.Write "<b>Glad Juldag</b>" End If
			If vad = "annandag" Then Response.Write "<b>Glad Annandag Jul</b>" End If
			If vad = "new" Then Response.Write "<b>Gott Nytt År</b>" End If
	Response.Write "</font>"

		ElseIf Session("advent") = "4" Then Response.Write "<br><br>"

	Else

	Response.Write "<br><br>"
	Response.Write "<img src=""bilder/" &Session("advent") & ".gif""><br>"
	Response.Write "<font size=""1"" face=""verdana"">"

	If Session("advent") = "1" Then Response.Write Session("advent") & ":a" End If
	If Session("advent") = "2" Then Response.Write Session("advent") & ":a" End If
	If Session("advent") = "3" Then Response.Write Session("advent") & ":e" End If
	If Session("advent") = "4" Then Response.Write Session("advent") & ":e" End If

	Response.Write " advent</font>"

	End If
%>

och det fungerar bra. Anledningen till att jag har 2 datumformat är att ett är när jag har sidan på servern och ett på pws.

Finns det något sätt att utföra samma sak fast med mindre kod typ:

<%

If date = "2001-12-1" <> "2001-12-7" Then Session("advent") = "blabla"

%>

förstår ni?

------------------
//Hulth

OveRRidEMedlem sedan feb. 200112 078 inlägg
#2
If date = "12/3/01" OR date = "2001-12-03"

För det första, du jämför ju samma variabel varje gång, mer optimalt är att jämföra det med en Select Case-sats, plus att du får en mer lätthanterlig kod. Sök lite på Case och Select så hittar du säkert nåt. (uppe till höger)

Select Case date
case "2001-12-03"
 Session("advent") = "1"
case "2001-12-04"
 Session("advent") = "1"
end select

Problemet är att Select Case inte klarar jämförelser som är av typen OR eller AND, typ <, > eller <>.

För det andra.. varför sätter du inte en liten rad i global.asa som säger åt servern (appen) vilket datum-format den skall ha?

Session.LCID = 1053

Så slipper du gardera dig med din dubbla 2001-01-01 och 2001/01/01, om du förstår vad jag menar. Då blir datumet enbart det första alternativet, alltså 2001-01-01, alltid.

Fast nu kom jag att tänka på att du kanske skulle använda DateDiff() istället, som jämför mellan datum. Nu orkar jag inte tänka på om man kan använda den smidigt i just denna lösningen, för jag kommer inte riktigt ihåg hur den funkar.. :l ;) Sök, som sagt.

Jaja..

Red.) Hittade och ändrade vad siffran för session.LCID skulle vara. ;)

Red2.)

Anledningen till att jag har 2 datumformat är att ett är när jag har sidan på servern och ett på pws.

När skall jag någonsin lära mig att läsa inläggen innan jag svarar? :x :e ;)

------------------
Jag är skum

[Redigerat av OveRRidE den 15 dec 2001]

[Redigerat av OveRRidE den 15 dec 2001]

solbulleMedlem sedan mars 20015 287 inlägg
#3

Å jag vet ju ingenting om någonting, men om man använder sig av:

Session.LCID = 1053

slipper man väl hur som helst problemet med olika datum server/pws? Eller?
(Å då problemet med de dubbla jämförelserna.)

------------------
/solbulle
Hemmabio | Spelautomater | The Who

VideMedlem sedan dec. 19998 577 inlägg
#4

Du kan ju fixa med en massa grejjor, med detta är väl ett litet steg på vägen:

if date >= datevalue( "12/03/01" ) and date <= datevalue( "12/9/01" ) then intAdvent = 1
if date >= datevalue( "12/10/01" ) and date <= datevalue( "12/16/01" ) then intAdvent = 2
if date >= datevalue( "12/17/01" ) and date <= datevalue( "12/23/01" ) then intAdvent = 3
if date >= datevalue( "12/24/01" ) and date <= datevalue( "01/01/02" ) then intAdvent = 4

If len( intAdvent ) > 0 Then

Response.Write "<br><br><font size=""1"" face=""verdana"">"

If date = datevalue( "12/24/01" ) Then Response.Write "<b>GOD JUL</b>"
If date = datevalue( "12/25/01" ) Then Response.Write "<b>Glad Juldag</b>"
If date = datevalue( "12/26/01" ) Then Response.Write "<b>Glad Annandag Jul</b>"
If date = datevalue( "01/01/01" ) or date = datevalue( "01/01/02" ) Then Response.Write "<b>Gott Nytt År</b>"

Response.Write "</font>"

Else

Response.Write "<br><br>"
Response.Write "<img src=""bilder/" & intAdvent & ".gif""><br>"
Response.Write "<font size=""1"" face=""verdana"">"

select case intAdvent
case 1, 2
Response.Write intAdvent & ":a"
case 3, 4
Response.Write intAdvent & ":e"
end select

Response.Write " advent</font>"

End If

------------------
Mostly Harmless

131 ms totalt · 3 externa anrop · v20260731065814-full.a2ca460b
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)