When you split a string (or a date) you end up with a variable type of "string", so initially a(1) is a "string" variant.
Then when you use the line "a(1)=a(1)+1" QTP recognizes that now a(1) is a "double" variant (a number, not a string), regardless of the fact that it used to be a string.
Then in your "If defaulttoDay = a(1) Then" line, a(1) is a "double", so as long as defaulttoDay is numeric, the line should evaluate to true. If defaulttoDay is something else, like a string, then the line will evaluate to false.
"The last 10% of any software project will take 90% of the budgeted time. The first 90% will take the other 90%"