When you create Date
object, its year
value is current year minus 1900. That's a valid value for calculating number of milliseconds elapsed since Jan 1, 1970, 00:00:00. When you modify year
value of Date
object by year
from arguments list, those milliseconds are out of range, because that year
in argument list, is just current year (without minus 1900).
You should replace
selDate.setYear(year);
and selDate.setYear(2014);
with
selDate.setYear(year-1900);
and selDate.setYear(114);