Assume it is Friday, the 1 st of the month. What does it mean when someone says, “this weekend?” Are they talking about tomorrow, the 2 nd? What if it is Monday, the 28 th and someone asked, “What did you do this weekend?” Do they mean yesterday, the 27 th? Surely not, because in one case “this” means the upcoming weekend, while in the other case it would mean the past weekend. In fact, it makes no sense to say “this X” unless you are in X.
Consider the logic. If you say, “this year” you mean the year you are in. Right now it is 2016, so if I say “this year” I mean 2016. If it is December 31 at 11:59 pm, “this year” means 2016. At 12:00, 1 January, “this year” means 2017, because that will be the year we are in. If I say “this month” I mean the month we are in. If I say “this week,” I mean the week we are in. If we shrink the time window from year to month to day, saying “this” means the one we are in. Further, saying “next” means the immediate one coming up. If it is Friday, and I say, “next Saturday,” then logic demands that I am referring to tomorrow. If it is Friday and I say, “this Saturday,” then this produces a logical error.
Making a comparison to computer programming, we can “cascade the operator,” or whatever the correct terminology is. Maybe we can define the rules as such: “this X” refers to the X we are in, unless we aren’t in a X. If this is the case, then we refer to the one next. In this case, if it is Friday and I say “this Saturday,” then I mean tomorrow. But saying “next Saturday” would also refer to tomorrow. Would you want “this” to refer to tomorrow and “next” to refer to 8 days from now? This could, technically, be made a consistent rule, but it would be so awkward and confusing. Let us stick to simple, logical rules. “This” means the one we are in, and “next” means the immediate upcoming, regardless of how soon or far away it is.
Today.next produces tomorrow. This.day produces whatever day it is, for example Saturday. This.day.next(Saturday) also produces tomorrow.