使用java.util.Calendar返回間隔天數

來源:互聯網
上載者:User
calendar 使用SimpleDateFormat,規定好格式,parser出錯即為非法/** * Calculates the number of days between two calendar days in a manner * which is independent of the Calendar type used. * * @param d1    The first date. * @param d2    The second date. * * @return      The number of days between the two dates.  Zero is *              returned if the dates are the same, one if the dates are *              adjacent, etc.  The order of the dates *              does not matter, the value returned is always >= 0. *              If Calendar types of d1 and d2 *              are different, the result may not be accurate. */static int getDaysBetween (java.util.Calendar d1, java.util.Calendar d2) {    if (d1.after(d2)) {  // swap dates so that d1 is start and d2 is end        java.util.Calendar swap = d1;        d1 = d2;        d2 = swap;    }    int days = d2.get(java.util.Calendar.DAY_OF_YEAR) -               d1.get(java.util.Calendar.DAY_OF_YEAR);    int y2 = d2.get(java.util.Calendar.YEAR);    if (d1.get(java.util.Calendar.YEAR) != y2) {        d1 = (java.util.Calendar) d1.clone();        do {            days += d1.getActualMaximum(java.util.Calendar.DAY_OF_YEAR);            d1.add(java.util.Calendar.YEAR, 1);        } while (d1.get(java.util.Calendar.YEAR) != y2);    }    return days;}

相關文章

Cloud Intelligence Leading the Digital Future

Alibaba Cloud ACtivate Online Conference, Nov. 20th & 21st, 2019 (UTC+08)

Register Now >

Starter Package

SSD Cloud server and data transfer for only $2.50 a month

Get Started >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。