for循环的时间

时间:2012-12-04 11:22:00

标签: java date datetime for-loop

我在使用Java创建这样的函数时遇到问题:

for(i=initial Time ; i<some final time ; i imcrement by 15 sec )
{
    System.out.println(i);
}

任何建议都得到了诚挚的接受。

<小时/> 要求是我们生成不同的时间值增加15秒,它不像我们需要每15秒执行一次

7 个答案:

答案 0 :(得分:4)

如果你只需要增加15秒的不同时间值,那么:

long now = System.currentTimeMillis();
long end = now + (60 * 1000);
Calendar c = Calendar.getInstance();

for (long i = now; i < end; i += 15000) {

    c.setTimeInMillis(i);
    System.out.println(c.getTime());
}

答案 1 :(得分:3)

我建议你在java中使用currentTimeMillis和长时间格式

示例:

import java.util.Date;

public class TestTime {

    public static void main(String[] args) {
        long initialTime = System.currentTimeMillis();
        long finalTime = initialTime + 30*1000*60;//half an hour later

        for(long i=initialTime ; i<finalTime ; i+=15*1000)
        {
            System.out.println(new Date(i));
        }
    }
}

答案 2 :(得分:2)

看起来你需要一个基于时间的表示。我或许会看看Joda-Time的LocalTime类,特别是plusSeconds()方法。我不会使用标准的基于Java时间/日期的东西有很多原因(API很差,可变状态等)。

如果您想要类似的东西但没有太多的类型安全性,只需使用Thread.currentTimeMillis()并在每个循环中添加15000(15秒)。

答案 3 :(得分:1)

我认为您可以在Calander api循环中使用while -

Calendar cal = Calendar.getInstance();
Calendar cal1 = Calendar.getInstance();
cal.setTime(startDate);
cal1.setTime(endDate);
while (!cal.equals(cal1)) {
  cal.add(Calendar.DATE, 1);
  if(cal.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY)
     System.out.println(cal.get(Calendar.DAY_OF_WEEK));
  System.out.println(cal.getTime());

}

答案 4 :(得分:0)

要求改变了(要求是我们生成不同的时间值增加15秒,它不像我们需要每15秒执行一次) 因此,这不是正确的答案。

int start=0;
int end= 10;
for(int i=start ; i<end ; i++)
{
   System.out,println(i*15);
   try {

       Thread.sleep(15000); // 15000 miliseconds

   } catch (InterruptedException e) {
   e.printStackTrace();     
   }
}

答案 5 :(得分:0)

你可以这样做:

for (long stop=System.currentTimeMillis();stop<System.currentTimeMillis()+60;stop=stop+15) 
{
//code to execute
}

因此这个循环将执行4次。

答案 6 :(得分:-1)

“要求是我们生成不同的时间值增加15秒,它不像我们需要每15秒执行一次”......所以这里是......

    long start = System.currentTimeMillis();       // now
    long stop = start + 60000;                     // 60 seconds later
    long interval = 15000;                         // 15 second interval
    for (long i = start; i < stop; i+=interval) {
            System.out.println(new Date(i));
    }