JAVA Date源码感觉有段多余的,为什么?

public Date(int year, int month, int date, int hrs, int min, int sec) {
        int y = year + 1900;
        if (month >= 12) {
            y += month / 12;
            month %= 12;
        } else if (month < 0) {
            y += CalendarUtils.floorDivide(month, 12);
            month = CalendarUtils.mod(month, 12);
        }


public static final int floorDivide(int n, int d) {
        return n >= 0 ? n / d : (n + 1) / d - 1;
    }

不管mouth 是否大于0,floorDivide都可以处理,这地方分开来是因为调用速度的原因吗?

month 什么时候为负数呢? 为负数的时候它的意义是什么?

为啥研究个已经弃用的方法呢。java就不许有点烂代码了?