我在 Java 中创建这样的函数时遇到问题:
for(i=initial Time ; i<some final time ; i imcrement by 15 sec )
{
System.out.println(i);
}
任何建议都被热诚接受。
要求是我们生成不同的时间值增加 15 秒,而不是我们需要每 15 秒执行一次
如果您只需要增加 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());
}
我建议你在 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));
}
}
}
看起来您需要基于时间的表示。我可能会看看 Joda-Time 的LocalTime类,尤其是plusSeconds( ) 方法。出于多种原因(糟糕的 API、可变状态等),我不会使用标准的基于 Java 时间/日期的东西。
如果您想要类似但没有太多类型安全性的东西,只需使用Thread.currentTimeMillis()
并添加每个循环 15000(15 秒)。
我认为您可以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());
}
要求改变(要求是我们生成不同的时间值增加 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();
}
}
你可以这样做:
for (long stop=System.currentTimeMillis();stop<System.currentTimeMillis()+60;stop=stop+15)
{
//code to execute
}
因此这个循环将执行 4 次。
“要求是我们生成不同的时间值增加 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));
}