I understand that answering this question is much harder than asking it. One reason is indeed that the actual training hours would give a more accurate indication than the number of years. Another is that different people learn at different rates. Another is that the criteria for a particular rank vary.

Even in the game of go, where rank criteria don't vary much because they are based on competition results only, this question would be hard to answer. Very few become shodan in a year (training dozens of hours a week for a total of about 1000 - 1500 hours). Many never become shodan, even after training a couple of hours a week for 30 years (for a total of 2000 - 4000 hours).

There's just no way to predict how long it will take for a particular person. Probably he won't become shodan at all.