Java-головоломка с разницей в дате

Я пытаюсь вычислить разницу даты и времени, но получаю странные результаты: Вот источник:

   import java.util.Calendar;
    import java.util.Collections;
    import java.util.Vector;

    public class Main {

        static Calendar dcal = Calendar.getInstance();
    static Calendar ccal = Calendar.getInstance();
    public static void main(String[] args) {
        dcal.set(2011, 1, 27);
        ccal.set(2011,2,1);
        long dtime = dcal.getTimeInMillis();
        long ctime = ccal.getTimeInMillis();
        long diff = ctime - dtime;
        int hours = (int) (diff / (1000 * 60 * 60));
        System.out.println("hours->"+hours);

    }

}

Когда я установил ccal на 1 31 2011, разница дат составляет 96 часов, но когда я установил его на 21 2011 разница дат составляет 48 часов. Как это может быть? Что можно исправить?

Спасибо,

Elliott

6
задан S.L. Barth - Reinstate Monica 20 July 2012 в 10:19
поделиться