我需要一个周期它通过日期间隔迭代 [英] I need a cycle which iterates through dates interval

查看:105
本文介绍了我需要一个周期它通过日期间隔迭代的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的开始日期和结束日期。我需要遍历这两个日期之间的每一天。

什么是做到这一点的最好方法是什么?

我可以建议只能是这样的:

 日期的currentdate =新的日期(startDate.getTime());
而(真){
   如果(currentDate.getTime()> = endDate.getTime())
      打破;
   doSmth();
   的currentdate =新的日期(currentDate.getTime()+ MILLIS_PER_DAY);
}
 

解决方案

准备运行; - )

 公共静态无效的主要(字串[] args)抛出ParseException的{
    GregorianCalendar的兆千卡=新的GregorianCalendar();
    SimpleDateFormat的SDF =新的SimpleDateFormat(YYYY.MM.DD);
    日期开始= sdf.parse(2010.01.01);
    日期结束= sdf.parse(2010年1月14号);
    gcal.setTime(开始);
    而(gcal.getTime()之前(结束)){
        gcal.add(Calendar.DAY_OF_YEAR,1);
        的System.out.println(gcal.getTime()的toString());
    }
}
 

I have the start date and the end date. I need to iterate through every day between these 2 dates.

What's the best way to do this?

I can suggest only something like:

Date currentDate = new Date (startDate.getTime ());
while (true) {
   if (currentDate.getTime () >= endDate.getTime ())
      break;
   doSmth ();
   currentDate = new Date (currentDate.getTime () + MILLIS_PER_DAY);
}

解决方案

ready to run ;-)

public static void main(String[] args) throws ParseException {
    GregorianCalendar gcal = new GregorianCalendar();
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy.MM.dd");
    Date start = sdf.parse("2010.01.01");
    Date end = sdf.parse("2010.01.14");
    gcal.setTime(start);
    while (gcal.getTime().before(end)) {
        gcal.add(Calendar.DAY_OF_YEAR, 1);
        System.out.println( gcal.getTime().toString());
    }
}

这篇关于我需要一个周期它通过日期间隔迭代的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆