java遍历两个日期之间的每天,每周,每月

package com;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
public class DateTest {
public static void main(String[] args) throws ParseException {
getDays();
}
private static void getMonths() throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date1="2015-6-22 00:00:00"; //开始时间
String date2="2016-07-26 23:59:59"; //结束时间
Date parse = sdf.parse(date1);
Date parse2 = sdf.parse(date2);
Calendar c1=Calendar.getInstance();
c1.setTime(parse);
//转为周一
int year = c1.get(Calendar.YEAR);
int month = c1.get(Calendar.MONTH);
c1.set(year, month, 1, 0, 0, 0);
System.out.println(sdf.format(c1.getTime()));
Calendar c2=Calendar.getInstance();
c2.setTime(parse2);
int weekYear2 = c2.get(Calendar.YEAR);
int weekOfYear2 = c2.get(Calendar.WEEK_OF_YEAR);
c2.setWeekDate(weekYear2, weekOfYear2, Calendar.SUNDAY);
while (true) {
System.out.println(sdf.format(c1.getTime())+" : "+c1.get(Calendar.MONTH));
//下一个月<结束日期
c1.set(Calendar.MONTH, c1.get(Calendar.MONTH)+1);
if(c1.getTimeInMillis()>=c2.getTimeInMillis()){
break;
}
}
}
private void getWeeks() throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date1="2016-6-22 00:00:00"; //开始时间
String date2="2016-06-26 23:59:59"; //结束时间
Date parse = sdf.parse(date1);
Date parse2 = sdf.parse(date2);
Calendar c1=Calendar.getInstance();
c1.setTime(parse);
//转为周一
int weekYear = c1.get(Calendar.YEAR);
int weekOfYear = c1.get(Calendar.WEEK_OF_YEAR);
c1.setWeekDate(weekYear, weekOfYear, Calendar.MONDAY);
System.out.println(sdf.format(c1.getTime()));
Calendar c2=Calendar.getInstance();
c2.setTime(parse2);
int weekYear2 = c2.get(Calendar.YEAR);
int weekOfYear2 = c2.get(Calendar.WEEK_OF_YEAR);
c2.setWeekDate(weekYear2, weekOfYear2, Calendar.SUNDAY);
while (true) {
System.out.println(sdf.format(c1.getTime())+" : "+c1.get(Calendar.WEEK_OF_YEAR));
System.out.println(c1.getTimeInMillis()+"--"+c2.getTimeInMillis());
if(c1.getTimeInMillis()>=c2.getTimeInMillis()){
break;
}
//增加7天
c1.setTimeInMillis(c1.getTimeInMillis()+1000*60*60*24*7);
}
}
private static void getDays() throws ParseException{
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String date1="2016-6-22 00:00:00"; //开始时间
String date2="2016-06-26 23:59:59"; //结束时间
Long startTIme = sdf.parse(date1).getTime();
Long endTime = sdf.parse(date2).getTime();
Long oneDay = 1000 * 60 * 60 * 24l;
Long time = startTIme;
while (time <= endTime) {
Date d = new Date(time);
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String date=df.format(d);
System.out.println(date);
time += oneDay;
}
}
}