package com.potevio.rnd.tobacco.mine;
import java.util.ArrayList;
import java.util.List;
/**
* @description 最近的一个项目做统计的时候,为了方便用户跨段查询,允许客户选择一段时间,后台计算来两个日期之间的月份数,最后把月份添加到一个List里面
* @author Zhou-Jingxian
* @date Jan 5, 2010
*/
public class DataUtil {
/**
*
* @param starttime
* 20080610
* @param endtime
* 20091020
* @return List<string> 数组里面的每一项是从开始月份到结束月份排列
*/
public static List<string> formatDate(String starttime, String endtime) {
String startYear = starttime.substring(0, 4);
String endYear = endtime.substring(0, 4);
String startMonth = starttime.substring(4, 6);
String endMonth = endtime.substring(4, 6);
List<string> datalist = new ArrayList<string>();
if (endYear.compareTo(startYear) > 0) {// 不在同一年
int endY = Integer.parseInt(endYear);
int startY = Integer.parseInt(startYear);
int temp = endY - startY;
switch (temp) {
case 1: {
// 开始年份
int startM = Integer.parseInt(startMonth);
int temp1 = 12 - startM;
for (int i = 0; i 9) {
tempMonth = (startM + i) > 12 ? 12 : (startM + i);
tempM = "" + tempMonth;
// System.out.println("2..."+startYear+tempM);
}
datalist.add(startYear + tempM);
}
// 结束年份
int endM = Integer.parseInt(endMonth);
int temp2 = endM;
for (int i = 0; i endM ? endM : (1 + i);
if (i 8) {
tempM = "" + tempMonth;
// System.out.println("4..."+endYear+tempM);
}
datalist.add(endYear + tempM);
}
break;
}//end case(1)
default: {
// 开始年份
int startM = Integer.parseInt(startMonth);
int temp1 = 12 - startM;
for (int i = 0; i 9) {
tempMonth = (startM + i) > 12 ? 12 : (startM + i);
tempM = "" + tempMonth;
// System.out.println("6..."+startYear+tempM);
}
datalist.add(startYear + tempM);
}
// 中间年份
for (int i = 1; i 9) {
date += j;
// System.out.println("8..."+date);
}
datalist.add(date);
}
}
// 结束年份
int endM = Integer.parseInt(endMonth);
int temp2 = endM;
for (int i = 0; i endM ? endM : (1 + i);
if (i 8) {
tempM = "" + tempMonth;
// System.out.println("10..."+endYear+tempM);
}
datalist.add(endYear + tempM);
}
break;
}//end default
}//end switch
} else if (0 == endYear.compareTo(startYear)) {// 同一年
int startM = Integer.parseInt(startMonth);
int endM = Integer.parseInt(endMonth);
int temp3 = endM - startM;
for (int i = 0; i 9) {
tempMonth = (startM + i) > 12 ? 12 : (startM + i);
tempM = "" + tempMonth;
// System.out.println("12..."+startYear+tempM);
}
datalist.add(startYear + tempM);
}
}
return datalist;
}
public static void main(String args[]) {
String t1 = "20080510";
String t2 = "20081010";
String t3 = "20080920";
String t4 = "20081220";
String t5 = "20090410";
String t6 = "20090920";
String t7 = "20091220";
String t8 = "20101220";
System.out.println(formatDate(t1, t3).size()+"--1--");
System.out.println(formatDate(t1, t4).size()+"--2--");
System.out.println(formatDate(t3, t4).size()+"--3--");
System.out.println(formatDate(t2, t4).size()+"--4--");
System.out.println(formatDate(t1, t5).size()+"--5--");
System.out.println(formatDate(t1, t6).size()+"--6--");
System.out.println(formatDate(t1, t7).size()+"--7--");
System.out.println(formatDate(t2, t6).size()+"--8--");
System.out.println(formatDate(t2, t7).size()+"--9--");
System.out.println(formatDate(t2, t8).size()+"--10--");
}
}
</string></string></string></string>