java 日期加減天數、月數、年數的計算方式

執筆記憶的空白發表於2015-07-21

因為某個專案需要統計 近1周、近1個月、近6個月 等資料,所以在時間的加減上面想了很多方式,最後決定用java.util.Calendar


java.util.Calendar ,提供了計算時間的方式,

Calendar.DATE  : 代表天數

Calendar.WEDNESDAY: 代表週數

Calendar.MONTH : 代表月數

Calendar.YEAR :代表年數


具體計算方式如下:

1、 計算近一週的日期,也就是得出過去7天的時間段,如今天2015-07-21  ,一個星期前那就是2015-07-14

public static void main(String[] args) {
		Calendar cal = Calendar.getInstance();
		cal.setTime(new Date());
		cal.add(Calendar.DATE, -7);
		System.out.println(DateUtils.date2String("yyyy-MM-dd", cal.getTime()));
	}

或者:

Calendar cal = Calendar.getInstance();
		cal.setTime(new Date());
		cal.add(Calendar.WEDNESDAY, -1);
		System.out.println(DateUtils.date2String("yyyy-MM-dd", cal.getTime()));

這兩者的結果都是得出2015-07-14的結果,只不過一個是減去7天,一個減去一個星期

注:如果是計算未來的日期,只需要去掉數字前面的負號就行了


2、計算近一個月的日期,也就是過去的一個月的時間段,如下:

Calendar cal = Calendar.getInstance();
		cal.setTime(new Date());
		cal.add(Calendar.MONTH, -1);
		System.out.println(DateUtils.date2String("yyyy-MM-dd", cal.getTime()));

輸出結果:2015-06-21 



3、計算近一年的日期,也就是過去一年的時間段,如下:

Calendar cal = Calendar.getInstance();
		cal.setTime(new Date());
		cal.add(Calendar.YEAR, -1);
		System.out.println(DateUtils.date2String("yyyy-MM-dd", cal.getTime()));

輸出結果:2014-07-21 




這個Calendar挺好用的,用來計算時間段的開始和結束什麼的很方便~







相關文章