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;
        }
    }
}

 

posted @ 2017-06-21 18:58  胡一生  阅读(4282)  评论(0编辑  收藏  举报