使用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;
	}

  

posted @ 2015-07-01 22:18  毛灬毛  阅读(1471)  评论(0编辑  收藏  举报