zoukankan      html  css  js  c++  java
  • 获取开始及结束日期间隔月份或年份列表

    /**
    	 * 获取开始及结束日期间隔月份列表
    	 * start格式 "2015-01-01"
    	 * end格式 "2016-01-01"
    	 * @param start
    	 * @param end
    	 * @return
    	 */
    	public static List<String> getMonths(String start, String end) {
    		List<String> dateList = new ArrayList<String>();
    	    if (StringUtils.isNotBlank(start) && StringUtils.isNotBlank(end)) {
    	    	Date dBegin = ToolDateTime.parse(start, ToolDateTime.pattern_ymd);
    	    	Date dEnd = ToolDateTime.parse(end, ToolDateTime.pattern_ymd);
    	    	
    	    	Calendar calBegin = Calendar.getInstance();
    	    	// 使用给定的 Date 设置此 Calendar 的时间  
    	    	calBegin.setTime(dBegin);
    	    	int yearMonth1 = (calBegin.get(Calendar.YEAR)) * 100 + calBegin.get(Calendar.MONTH);
    	    	Calendar calEnd = Calendar.getInstance();
    	    	// 使用给定的 Date 设置此 Calendar 的时间  
    	    	calEnd.setTime(dEnd);
    	    	int yearMonth2 = (calEnd.get(Calendar.YEAR)) * 100 + calEnd.get(Calendar.MONTH);
    	    	// 测试此日期是否在指定日期之后  
    	    	while (yearMonth2 >= yearMonth1) {
    	    		dateList.add(ToolDateTime.format(calBegin.getTime(), ToolDateTime.pattern_ym));
    	    		calBegin.add(Calendar.MONTH, 1); 
    	    		yearMonth1 = (calBegin.get(Calendar.YEAR)) * 100 + calBegin.get(Calendar.MONTH);
    	    	}
    	    }
    	    return dateList;
        }
    	
    	/**
    	 * 获取开始及结束日期间隔年份列表
    	 * start格式 "2015-01-01"
    	 * end格式 "2016-01-01"
    	 * @param start
    	 * @param end
    	 * @return
    	 */
    	public static List<String> getYears(String start, String end) {
    		List<String> dateList = new ArrayList<String>();
    		if (StringUtils.isNotBlank(start) && StringUtils.isNotBlank(end)) {
    			Date dBegin = ToolDateTime.parse(start, ToolDateTime.pattern_ymd);
    			Date dEnd = ToolDateTime.parse(end, ToolDateTime.pattern_ymd);
    			
    			Calendar calBegin = Calendar.getInstance();
    			// 使用给定的 Date 设置此 Calendar 的时间  
    			calBegin.setTime(dBegin);
    			int year1 = calBegin.get(Calendar.YEAR);
    			Calendar calEnd = Calendar.getInstance();
    			// 使用给定的 Date 设置此 Calendar 的时间  
    			calEnd.setTime(dEnd);
    			int year2 = calEnd.get(Calendar.YEAR);
    			// 测试此日期是否在指定日期之后  
    			while (year2 >= year1) {
    				dateList.add(ToolDateTime.format(calBegin.getTime(), "yyyy"));
    				calBegin.add(Calendar.YEAR, 1); 
    				year1 = calBegin.get(Calendar.YEAR);
    			}
    		}
    		return dateList;
    	}


    注:

    工具类ToolDateTime.class没粘,把下面的改成自己的方法即可

    public static final String pattern_ym = "yyyy-MM"; // pattern_ym
    public static final String pattern_ymd = "yyyy-MM-dd"; // pattern_ymd


    public static String format(Date date, String pattern) {
    DateFormat format = new SimpleDateFormat(pattern);
    return format.format(date);
    }

    public static Date parse(String date, String pattern) {
    SimpleDateFormat format = new SimpleDateFormat(pattern);
    try {
    return format.parse(date);
    } catch (ParseException e) {
    log.error("ToolDateTime.parse异常:date值" + date + ",pattern值" + pattern);
    return null;
    }
    }

  • 相关阅读:
    Hiho----无间道之并查集
    Linux之压缩与解压
    Linux之用户和用户组
    Linux之关机/重启命令及一些符号
    Linux之基本操作命令
    Linux之vi/vim
    解决eclipse中maven报错Failed to read artifact descriptor for xxxx:jar
    CentOS 7下 solr 单机版安装与配置
    CentOS 7下 Tomcat7 安装与配置
    CentOS 7下 JDK 1.7 安装与配置
  • 原文地址:https://www.cnblogs.com/dulinan/p/12033087.html
Copyright © 2011-2022 走看看