 			toIsYear = true
 			toYear = parseInt(to)
 		else if toMoment.isValid() and toMoment.date() == 31 and toMoment.month() == 11 # Last day of year
+			toMoment.add(1, "day")
+			toMoment.parseZone()
 			toYear = toMoment.year()
 
 		grammars = CUI.DateTimeRangeGrammar.PARSE_GRAMMARS[locale]

			fromIsYear = true
			fromYear = parseInt(from)
		else if fromMoment.isValid() and fromMoment.date() == 1 and fromMoment.month() == 0 # First day of year.
			fromYear = fromMoment.year()

		if from == to

		momentInputFrom = CUI.DateTimeRangeGrammar.getMoment(year)
		if not momentInputFrom?.isValid()
			return

		if not year.startsWith(CUI.DateTimeRangeGrammar.DASH)
			momentInputFrom.add(1, "day") # This is a workaround to avoid having the wrong year after parsing the timezone.
			momentInputFrom.parseZone()

		if fromAddYears or toAddYears
			_year = momentInputFrom.year()
