|
| |
|
|
dzirkelb1
Posts: 1433 Joined: 10/5/2004 From: Cedar Rapids, Iowa Status: offline
|
Select Case statement not working correctly - 6/18/2009 12:32:16
I have an issue with my statement. here is the code:
intWeekToAdd = 0
intDayOfYear = 0
intDayOfYear = cInt(DateDiff("d", "1/1/2009", Date()))
select case intDayOfYear
case intDayOfYear < 22
intWeekToAdd = 1
case intDayOfYear > 21 and intDayOfYear < 43
intWeekToAdd = 2
case intDayOfYear > 42 and intDayOfYear < 64
intWeekToAdd = 3
case intDayOfYear > 63 and intDayOfYear < 85
intWeekToAdd = 4
case intDayOfYear > 84 and intDayOfYear < 106
intWeekToAdd = 5
case intDayOfYear > 105 and intDayOfYear < 127
intWeekToAdd = 6
case intDayOfYear > 126 and intDayOfYear < 148
intWeekToAdd = 7
case intDayOfYear > 147 and intDayOfYear < 169
intWeekToAdd = 8
case intDayOfYear > 168 and intDayOfYear < 190
intWeekToAdd = 9
case intDayOfYear > 189 and intDayOfYear < 211
intWeekToAdd = 10
case intDayOfYear > 210 and intDayOfYear < 232
intWeekToAdd = 11
case intDayOfYear > 231 and intDayOfYear < 253
intWeekToAdd = 12
case intDayOfYear > 252 and intDayOfYear < 274
intWeekToAdd = 13
case intDayOfYear > 273 and intDayOfYear < 295
intWeekToAdd = 14
case intDayOfYear > 294 and intDayOfYear < 316
intWeekToAdd = 15
case intDayOfYear > 315 and intDayOfYear < 337
intWeekToAdd = 16
case intDayOfYear > 336 and intDayOfYear < 365
intWeekToAdd = 17
end select
response.write(intDayOfYear&"<br>"&intWeekToAdd)
intDayOfYear = 168, so, intWeekToAdd should equal 8; however, it is still set at 0. What am I doing wrong?
|
|
|
|
ou812
Posts: 1703 Joined: 1/5/2002 From: San Diego Status: offline
|
RE: Select Case statement not working correctly - 6/18/2009 14:01:47
Unfortunately, the ASP case select statement does not allow comparisons. You can only match to exact results. So you can either type each number you need it to match against separated by commas or use an ifelse routine. I would suggest an ifelse routine. Something like this: intWeekToAdd = 0
intDayOfYear = 0
intDayOfYear = cInt(DateDiff("d", "1/1/2009", Date()))
if intDayOfYear > 336 then
intWeekToAdd = 17
elseif intDayOfYear > 315 then
intWeekToAdd = 16
elseif intDayOfYear > 294 then
intWeekToAdd = 15
elseif intDayOfYear > 273 then
intWeekToAdd = 14
elseif intDayOfYear > 252 then
intWeekToAdd = 13
elseif intDayOfYear > 231 then
intWeekToAdd = 12
elseif intDayOfYear > 210 then
intWeekToAdd = 11
elseif intDayOfYear > 189 then
intWeekToAdd = 10
elseif intDayOfYear > 168 then
intWeekToAdd = 9
elseif intDayOfYear > 147 then
intWeekToAdd = 8
elseif intDayOfYear > 126 then
intWeekToAdd = 7
elseif intDayOfYear > 105 then
intWeekToAdd = 6
elseif intDayOfYear > 84 then
intWeekToAdd = 5
elseif intDayOfYear > 63 then
intWeekToAdd = 4
elseif intDayOfYear > 42 then
intWeekToAdd = 3
elseif intDayOfYear > 21 then
intWeekToAdd = 2
elseif intDayOfYear < 22 then
intWeekToAdd = 1
else
response.write "Oh No!<br>"
end if
response.write(intDayOfYear&"<br>"&intWeekToAdd)
To make it a bit more efficient, I reversed the order (and now thinking about it I could have left it the same order but reversed the > to <. oh well) and removed the extra check. So it falls through until it hits the elseif it matches.
_____________________________
-brian Black Holes suck. EnterpriseDB: Enterprise-class relational database management system PostgreSQL: The world's most advanced open source database
|
|
|
|
dzirkelb1
Posts: 1433 Joined: 10/5/2004 From: Cedar Rapids, Iowa Status: offline
|
RE: Select Case statement not working correctly - 6/18/2009 15:10:02
quote:
if intDayOfYear > 336 then intWeekToAdd = 17 elseif intDayOfYear > 315 then intWeekToAdd = 16 elseif intDayOfYear > 294 then intWeekToAdd = 15 elseif intDayOfYear > 273 then intWeekToAdd = 14 elseif intDayOfYear > 252 then intWeekToAdd = 13 elseif intDayOfYear > 231 then intWeekToAdd = 12 elseif intDayOfYear > 210 then intWeekToAdd = 11 elseif intDayOfYear > 189 then intWeekToAdd = 10 elseif intDayOfYear > 168 then intWeekToAdd = 9 elseif intDayOfYear > 147 then intWeekToAdd = 8 elseif intDayOfYear > 126 then intWeekToAdd = 7 elseif intDayOfYear > 105 then intWeekToAdd = 6 elseif intDayOfYear > 84 then intWeekToAdd = 5 elseif intDayOfYear > 63 then intWeekToAdd = 4 elseif intDayOfYear > 42 then intWeekToAdd = 3 elseif intDayOfYear > 21 then intWeekToAdd = 2 elseif intDayOfYear < 22 then intWeekToAdd = 1 else response.write "Oh No!<br>" end if That works out well, thanks!
|
|
New Messages |
No New Messages |
Hot Topic w/ New Messages |
Hot Topic w/o New Messages |
Locked w/ New Messages |
Locked w/o New Messages |
|
Post New Thread
Reply to Message
Post New Poll
Submit Vote
Delete My Own Post
Delete My Own Thread
Rate Posts
|
|
|