日期:2014-05-20 浏览次数:21051 次
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar start = Calendar.getInstance();
Calendar end = Calendar.getInstance();
start.setTime(sdf.parse("2011-01-28"));
end.setTime(sdf.parse("2011-12-02"));
int day=1, week=1, month = 1, season=1, lastW=start.get(Calendar.WEEK_OF_YEAR), lastM = start.get(Calendar.MONTH); 
System.out.println("时间 日 周 月 季度");
while (!start.after(end)) {
    System.out.printf("%s %s %s %s %s\n",
        sdf.format(start.getTime()),
        day,
        week,
        month,
        season
    );
    start.add(Calendar.DATE, 1);
    day++;
    if (start.get(Calendar.WEEK_OF_YEAR) != lastW) {
        week++;
        lastW = start.get(Calendar.WEEK_OF_YEAR);
    }
    if (start.get(Calendar.MONTH) != lastM) {
        month++;
        lastM = start.get(Calendar.MONTH);
        if (month%3 == 1) {
            season++;
        }
    }
}
------解决方案--------------------
public static void main(String[] args) throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date st = sdf.parse("2011-01-28");
        Date ed = sdf.parse("2011-12-02");
        Calendar c = Calendar.getInstance(); 
        c.setTime(st);
        String rel = "";
        int day = 1,week = 1,month = 1,jidu = 1,i=1;
        while (st.before(ed)||st.equals(ed)){
            rel = sdf.format(c.getTime());
            day = c.get(Calendar.DAY_OF_MONTH);
            week = c.get(Calendar.WEEK_OF_YEAR);
            month = c.get(Calendar.MONTH)+1;
            jidu = (month<3)?1:month/3;
            System.out.println(rel+"="+i+"="+day+"="+week+"="+month+"="+jidu);
            c.add(Calendar.DAY_OF_WEEK, 1);
            st = c.getTime();
            i++;
        }
    }