/**
	 * 获取指定日期上一个月的第一天
	 * @param date null 默认是当前日期
	 */
	public static String getPreMonthFirstDate(Date date) {

		if(date==null){
			date = new Date();
		}

		SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
		Calendar calendar=Calendar.getInstance();
		calendar.setTime(date);
		calendar.add(Calendar.MONTH, -1);
		calendar.set(Calendar.DAY_OF_MONTH, 1);
//	  System.out.println("上个月第一天:"+format.format(calendar.getTime()));
		return  format.format(calendar.getTime());
	}
	/**
	 * 获取指定日期上一个月的最后一天
	 * @param date null 默认是当前日期
	 */
	public static String getPreMonthLastDate(Date date){
		if(date==null){
			date = new Date();
		}
		SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
		Calendar calendar=Calendar.getInstance();
		calendar.setTime(date);
		calendar.set(Calendar.DAY_OF_MONTH, 1);
		calendar.add(Calendar.DATE, -1);
        //System.out.println("上个月最后一天:"+sf.format(calendar.getTime()));
		return  sf.format(calendar.getTime());

	}

	/**
	 * 当前月的第一天
	 * @return
	 */
	public static String getfirstDayOfCurMonth(){

		//规定返回日期格式
		SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
		Calendar calendar=Calendar.getInstance();
		Date theDate=calendar.getTime();
		GregorianCalendar gcLast=(GregorianCalendar)Calendar.getInstance();
		gcLast.setTime(theDate);
		//设置为第一天
		gcLast.set(Calendar.DAY_OF_MONTH, 1);
		String day_first=sf.format(gcLast.getTime());
		return  day_first;
	}


	/**
	 * 当前月的最后一天
	 * @return
	 */
	public static String getlastDayOfCurMonth(){
		//获取Calendar
		Calendar calendar=Calendar.getInstance();
		//设置日期为本月最大日期
		calendar.set(Calendar.DATE, calendar.getActualMaximum(calendar.DATE));
		//设置日期格式
		SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
		String ss=sf.format(calendar.getTime());
		return ss;
	}


	/**
	 * 得到本周一 周日的日期
	 * @return
	 */
	public static String[] getCurWeekFirstDayAndLastDay(){
		Calendar cal = Calendar.getInstance();
		String dateArray[] = new String[2];

		/* 模拟其它日期进行测试
		try {
			SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
			cal.setTime(df.parse("2017-07-10")); //test
		}catch (Exception e){
			e.printStackTrace();;
		}
		*/
		cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
		cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
		SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");
		String ss=sf.format(cal.getTime());
//		System.out.println("本周第一天:"+ss);
		dateArray[0] = ss;


		cal.setTime(cal.getTime()); //第一天的时间
		cal.add(Calendar.DAY_OF_WEEK, 6);
		ss=sf.format(cal.getTime());
//		System.out.println("本周最后一天:"+ss);
		dateArray[1] = ss;

		return dateArray;
	}


	/**
	 * 得到上周一 周日的日期
	 * @return
	 */
	public static String[] getPreWeekFirstDayAndLastDay(){

		String dateArray[] = new String[2];
		Calendar cal = Calendar.getInstance();

		SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd");

		/* 模拟其它日期进行测试
		try {
			SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
			cal.setTime(df.parse("2017-09-04")); //test 2017-09-03 2017-08-28 2017-09-10
		}catch (Exception e){
			e.printStackTrace();;
		}
		*/
		cal.setFirstDayOfWeek(Calendar.MONDAY);//将每周第一天设为星期一,默认是星期天
		cal.add(Calendar.DATE, -1*7);
		cal.set(Calendar.DAY_OF_WEEK,Calendar.MONDAY);
		String ss=sf.format(cal.getTime());
		dateArray[0] = ss;


		cal.setTime(cal.getTime()); //第一天的时间
		cal.add(Calendar.DAY_OF_WEEK, 6);
		ss=sf.format(cal.getTime());
		dateArray[1] = ss;
		return dateArray;
	}


	@Test
	public void test() {
//	  getBeforeFirstMonthDate(new Date());
//	  getBeforeLastMonthDate(new Date());
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		try {
//		getBeforeFirstMonthDate(sdf.parse("2017-01-01"));
//		getBeforeLastMonthDate(sdf.parse("2017-01-01"));

			String a = getPreMonthFirstDate(sdf.parse("2017-08-01"));
			String b =getPreMonthLastDate(sdf.parse("2017-08-01"));

			a = getfirstDayOfCurMonth();
			b= getlastDayOfCurMonth();

			a = getPreMonthFirstDate(null);
			b = getPreMonthLastDate(null);

			String[] ab= getCurWeekFirstDayAndLastDay();


			System.out.println(a+"==="+b);
			System.out.println("本周:"+ab[0]+"  "+ab[1]);
			System.out.println("上周:"+getPreWeekFirstDayAndLastDay()[0] +"  " +getPreWeekFirstDayAndLastDay()[1]);

		} catch (ParseException e) {
			e.printStackTrace();
		}
	}

  

标签: none


阿里云优惠主机

添加新评论

免责声明
本博客部分内容来自于互联网,不代表作者的观点和立场,如若侵犯到您的权益,请联系[email protected]。我们会在24小时内进行删除。