我在使用Java创建这样的函数时遇到问题:
for(i=initial Time ; i<some final time ; i imcrement by 15 sec )
{
System.out.println(i);
}
任何建议都得到了诚挚的接受。
<小时/> 要求是我们生成不同的时间值增加15秒,它不像我们需要每15秒执行一次
答案 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));
}