1

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

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

任何建议都被热诚接受。


要求是我们生成不同的时间值增加 15 秒,而不是我们需要每 15 秒执行一次

4

7 回答 7

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());
}
于 2012-12-04T11:30:50.810 回答
3

我建议你在 java 中使用 currentTimeMillis 和 long time 格式

例子:

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));
        }
    }
}
于 2012-12-04T11:28:24.490 回答
2

看起来您需要基于时间的表示。我可能会看看 Joda-Time 的LocalTime类,尤其是plusSeconds( ) 方法。出于多种原因(糟糕的 API、可变状态等),我不会使用标准的基于 Java 时间/日期的东西。

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

于 2012-12-04T11:24:10.693 回答
1

我认为您可以Calander apiwhile循环中使用-

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());

}
于 2012-12-04T11:26:18.617 回答
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();     
   }
}
于 2012-12-04T11:24:37.527 回答
0

你可以这样做:

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

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

于 2012-12-04T11:40:10.390 回答
-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));
    }
于 2012-12-04T12:03:51.197 回答