This function takes two arguments. The first argument is a time value, the second is an integer value. The function increments the year of the time value by the second argument and returns the time value for the same month, day, hour and minute but some years later or sooner in case the second argument is negative.
This is a bit more complex than just adding 365*24*60*60 to the value, because leap-years are longer and in case you add several years to the time value you should consider adding these longer years extra days. This is calculated correct in this function.
If the original time value is February 29 on a leap-year and the resulting value is in a year, which is not leap year the function will return February 28.
Note that because of this correction using the function in a loop is not the same as using it once. For example:
will print two different values.