This depends on how you want to count months and years. Do you care about boundaries crossed (e.g. Jan 25 to Feb 1 = one month OR Dec 30 to Jan 1 = 1 year) or about the number of average size months/years (e.g. 29 days in month or 365 days in year) between two dates?
The TimeSpan result you can get by subtracting dates will give you all the fixed size time periods (e.g. days, minutes)
See this question for some details around why months and years can be hard.