计算两个日期之间的月份列表yyyyMM

/**
	 * 计算两个日期之间的月份列表yyyyMM
	 * @param startTime   yyyyMMddHHmmss
	 * @param endTime     yyyyMMddHHmmss
	 * @return 之间的月份列表
	 */
List<String> yyyyMMList(String startTime, String endTime) {
		
		int syear = Integer.valueOf(startTime.substring(0, 4));
		int smonth = Integer.valueOf(startTime.substring(4, 6));
		int eyear = Integer.valueOf(endTime.substring(0, 4));
		int emonth = Integer.valueOf(endTime.substring(4, 6));

		List<String> yyyymm = new ArrayList<String>();

		if (eyear == syear) {

			if (emonth > smonth) {
				for (int i = smonth; i <= emonth; i++) {
					String ti = "" + i;
					if (ti.length() < 2) {
						ti = "0" + ti;
					}
					yyyymm.add(eyear + ti);
				}
			} else {

				yyyymm.add((eyear + "") + emonth);
			}
		} else if (eyear > syear) {

			for (int yy = syear; yy <= eyear; yy++) {

				if (yy < eyear) {

					if (yy == syear) {
						for (int i = smonth; i <= 12; i++) {

							String ti = "" + i;
							if (ti.length() < 2) {
								ti = "0" + ti;
							}
							yyyymm.add((yy + "") + ti);

						}
					} else {
						for (int i = 1; i < 12; i++) {
							String ti = "" + i;
							if (ti.length() < 2) {
								ti = "0" + ti;
							}
							yyyymm.add((yy + "") + ti);
						}
					}

				}

				if (yy == eyear) {
					for (int i = 1; i <= emonth; i++) {
						String ti = "" + i;
						if (ti.length() < 2) {
							ti = "0" + ti;
						}

						yyyymm.add((yy + "") + ti);
					}
				}

			}
		} else {

		}
		return yyyymm;
	}

你可能感兴趣的:(日期)