public long betweenYear(boolean isReset) {
		final Calendar beginCal = DateUtil.calendar(begin);
		final Calendar endCal = DateUtil.calendar(end);

		int result = endCal.get(Calendar.YEAR) - beginCal.get(Calendar.YEAR);
		if (false == isReset) {
			final int beginMonthBase0 = beginCal.get(Calendar.MONTH);
			final int endMonthBase0 = endCal.get(Calendar.MONTH);
			if (beginMonthBase0 < endMonthBase0) {
				return result;
			} else if (beginMonthBase0 > endMonthBase0) {
				return result - 1;
			} else if (Calendar.FEBRUARY == beginMonthBase0
				&& CalendarUtil.isLastDayOfMonth(beginCal)
				&& CalendarUtil.isLastDayOfMonth(endCal)) {
				// 考虑闰年的2月情况
				// 两个日期都位于2月的最后一天，此时月数按照相等对待，此时都设置为1号
				beginCal.set(Calendar.DAY_OF_MONTH, 1);
				endCal.set(Calendar.DAY_OF_MONTH, 1);
			}

			endCal.set(Calendar.YEAR, beginCal.get(Calendar.YEAR));
			long between = endCal.getTimeInMillis() - beginCal.getTimeInMillis();
			if (between < 0) {
				return result - 1;
			}
		}
		return result;
	}
@Test
	public void issueI97U3JTest(){
		String dateStr1 = "2024-02-29 23:59:59";
		Date sdate = DateUtil.parse(dateStr1);

		String dateStr2 = "2023-03-01 00:00:00";
		Date edate = DateUtil.parse(dateStr2);

		long result = DateUtil.betweenYear(sdate, edate, false);
		assertEquals(0, result);
	}