It looks like your first expression has the wrong operator. Looks to me like you want a result of 0 if you want today's date to be less than start Date + 180 but you are using > instead of < in the first expression.
A better way to do this might be with a single set field step with a case function used as the Calculated Result parameter:
Let ( [ T = Get ( CurrentDate ) ;
V = Vacation::Start Date
Case ( T < V + 180 ; 0 ;
T < V + 365.24 ; 40 ;
T < V + 730.49 ; 80 ;
T < V + 1826.24 ; 120 ;
160 // Else
) // Case
) // Let
Phil's probably right, you may have the > mixed up. What exactly are you trying to test? Give a few examples of what the start date can be and what you're hoped-for result would be.
Also, if the operator is correct, you save yourself a lot of trouble if you reverse the order of the Else Ifs.
Thank you both for your help. I'll let you know how it works out.
I just reread your post. Here's an example:
My anniversary date for the company I work for is 04/11/12. Therefor on the 11th of April this year I should have 3 weeks of vacation or 120 hours but until then only 2 weeks or 80 hours. Since we subtract PTO by hours used, I want the system to update the employee's PTO record based on the current date and their anniversary date so they have the correct amount of starting hours. However, if they haven't completed a full year they only have one week of PTO but that doesn't happen until their 6 month anniversary so the script needs to account for that. To further complicate things it will also need at some point to recognize if they are either at or past their anniversary date and reset the amount of vacation time available since we do not bank PTO. As they use their PTO the system will then need to remove their PTO from the amount they have available and will need to keep track of how many hours they have left. So...ya.
If you can think of a better way to accomplish this, I'm all ears.