你的位置:首页 > Java教程

[Java教程]使用java的Calendar对象获得当前日期的上几个度开始、结束时间


思路:

先获得当前季度的开始和结束日期,在当前日期的基础上往前推3个月即上个季度的开始和结束日期

/**	 * @param flag true:开始日期;false:结束日期	 * @return	 */	public static String getLastQuarterTime(boolean flag){		SimpleDateFormat shortSdf = new SimpleDateFormat("yyyy-MM-dd");		SimpleDateFormat longSdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");				String resultDate="";		Date now = null;		try {			Calendar calendar = Calendar.getInstance();			int currentMonth = calendar.get(Calendar.MONTH) + 1;			//true:开始日期;false:结束日期			if(flag){				if (currentMonth >= 1 && currentMonth <= 3)					calendar.set(Calendar.MONTH, 0);				else if (currentMonth >= 4 && currentMonth <= 6)					calendar.set(Calendar.MONTH, 3);				else if (currentMonth >= 7 && currentMonth <= 9)					calendar.set(Calendar.MONTH, 6);				else if (currentMonth >= 10 && currentMonth <= 12)					calendar.set(Calendar.MONTH, 9);				calendar.set(Calendar.DATE, 1);								now = longSdf.parse(shortSdf.format(calendar.getTime()) + " 00:00:00");			}else{				if (currentMonth >= 1 && currentMonth <= 3) {					calendar.set(Calendar.MONTH, 2);					calendar.set(Calendar.DATE, 31);	      } else if (currentMonth >= 4 && currentMonth <= 6) {	      	calendar.set(Calendar.MONTH, 5);	      	calendar.set(Calendar.DATE, 30);	      } else if (currentMonth >= 7 && currentMonth <= 9) {	      	calendar.set(Calendar.MONTH, 8);	      	calendar.set(Calendar.DATE, 30);	      } else if (currentMonth >= 10 && currentMonth <= 12) {	      	calendar.set(Calendar.MONTH, 11);	      	calendar.set(Calendar.DATE, 31);	      }				now = longSdf.parse(shortSdf.format(calendar.getTime()) + " 23:59:59");			}			calendar.setTime(now);// 设置日期			calendar.add(Calendar.MONTH, -3);			resultDate = longSdf.format(calendar.getTime());					} catch (Exception e) {			;		}		return resultDate;	}