Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用不同的时间显示时间_Java - Fatal编程技术网

Java 用不同的时间显示时间

Java 用不同的时间显示时间,java,Java,我希望它是: 08:00 09:00 11:00 因为在不同的两个小时内,如果我们从08:00开始,直到10:00 为什么输出从10:00跳到11:00 08:00 09:00 10:00 您正在添加i,它将在每个循环上增加一个,因此对于第一个循环,它将添加零,然后添加一个,然后添加两个。相反,由于您希望通过具体的数字进行相加,请尝试只添加1 虽然这确实意味着您需要在07:00开始,但另一种选择是加入一些逻辑,但这取决于您的期望。类似这样的方法可能会奏效: cal.add(Calendar.

我希望它是:

08:00
09:00
11:00
因为在不同的两个小时内,如果我们从
08:00开始,直到
10:00

为什么输出从
10:00
跳到
11:00

08:00
09:00
10:00
您正在添加
i
,它将在每个循环上增加一个,因此对于第一个循环,它将添加零,然后添加一个,然后添加两个。相反,由于您希望通过具体的数字进行相加,请尝试只添加1

虽然这确实意味着您需要在07:00开始,但另一种选择是加入一些逻辑,但这取决于您的期望。类似这样的方法可能会奏效:

cal.add(Calendar.HOUR, 1);
for(int i=0;i
您正在添加
i
,它将在每个循环中增加1,因此第一次它将添加0,然后添加1,然后添加2。相反,由于您希望通过具体数字进行添加,请尝试只添加1

虽然这确实意味着您需要在07:00开始,但另一种选择是加入一些逻辑,但这取决于您的期望。类似的方法可能会起作用:

cal.add(Calendar.HOUR, 1);

for(int i=0;i尝试以下方法:

for (int i=0; i<=diffHour; i++) {
    if (i <= 1) {
        cal.add(Calendar.HOUR, i);
    } else {
        cal.add(Calendar.HOUR, 1);
    }
    String newTime = df.format(cal.getTime());
    System.out.println(newTime);
}
package org.app.temputil;
导入java.text.ParseException;
导入java.text.simpleDataFormat;
导入java.util.Calendar;
导入java.util.Date;
公开课考试{
公共静态void main(字符串[]args)引发异常{
字符串myTime=“08:00”;
int diffHour=2;
SimpleDataFormat df=新的SimpleDataFormat(“HH:mm”);
日期d=df.parse(myTime);
Calendar cal=Calendar.getInstance();
校准设定时间(d);

对于(int i=0;i请尝试以下操作:

for (int i=0; i<=diffHour; i++) {
    if (i <= 1) {
        cal.add(Calendar.HOUR, i);
    } else {
        cal.add(Calendar.HOUR, 1);
    }
    String newTime = df.format(cal.getTime());
    System.out.println(newTime);
}
package org.app.temputil;
导入java.text.ParseException;
导入java.text.simpleDataFormat;
导入java.util.Calendar;
导入java.util.Date;
公开课考试{
公共静态void main(字符串[]args)引发异常{
字符串myTime=“08:00”;
int diffHour=2;
SimpleDataFormat df=新的SimpleDataFormat(“HH:mm”);
日期d=df.parse(myTime);
Calendar cal=Calendar.getInstance();
校准设定时间(d);

对于(int i=0;i,以下是对代码的描述-

    package org.app.temputil;

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;

    public class Test {

        public static void main(String[] args) throws ParseException {
            String myTime = "08:00";
            int diffHour = 2;
            SimpleDateFormat df = new SimpleDateFormat("HH:mm");
            Date d = df.parse(myTime);
            Calendar cal = Calendar.getInstance();
            cal.setTime(d);

            for (int i = 0; i <= diffHour; i++) {
                cal.add(Calendar.HOUR, i == 0 ? 0 : 1);
                String newTime = df.format(cal.getTime());
                System.out.println("i=[" + i + "], time=" + newTime);
            }

        }
    }

以下是您的代码说明-

    package org.app.temputil;

    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    import java.util.Date;

    public class Test {

        public static void main(String[] args) throws ParseException {
            String myTime = "08:00";
            int diffHour = 2;
            SimpleDateFormat df = new SimpleDateFormat("HH:mm");
            Date d = df.parse(myTime);
            Calendar cal = Calendar.getInstance();
            cal.setTime(d);

            for (int i = 0; i <= diffHour; i++) {
                cal.add(Calendar.HOUR, i == 0 ? 0 : 1);
                String newTime = df.format(cal.getTime());
                System.out.println("i=[" + i + "], time=" + newTime);
            }

        }
    }
正确。您正在添加
i
,您应该在其中添加数字1
1

java.time 您还使用了旧的麻烦类,这些类现在已经被java.time类淘汰了

LocalTime
该类只表示一天中的某个时间值,不带日期和时区

if (i == 0) {
  cal.add(Calendar.HOUR, 0);
} else {
 cal.add(Calendar.HOUR, 1);
}
LocalTime start=LocalTime.parse(“08:00”);
整小时=2;
本地时间=开始;
for(int i=0;i正确。您正在添加
i
,您应该在其中添加数字1
1

java.time 您还使用了旧的麻烦类,这些类现在已经被java.time类淘汰了

LocalTime
该类只表示一天中的某个时间值,不带日期和时区

if (i == 0) {
  cal.add(Calendar.HOUR, 0);
} else {
 cal.add(Calendar.HOUR, 1);
}
LocalTime start=LocalTime.parse(“08:00”);
整小时=2;
本地时间=开始;

对于(inti=0;i将循环更改为

LocalTime start = LocalTime.parse( "08:00" );
int hours = 2;
LocalTime time = start;
for ( int i = 0 ; i <= hours ; i++ ) {
    String output = time.toString();
    // Set up next loop.
    time = time.plusHours( 1 );
}

for(int i=0;i将循环更改为

LocalTime start = LocalTime.parse( "08:00" );
int hours = 2;
LocalTime time = start;
for ( int i = 0 ; i <= hours ; i++ ) {
    String output = time.toString();
    // Set up next loop.
    time = time.plusHours( 1 );
}

用于(int i=0;我想:在循环的每个步骤中,
i
的值是多少?在调用
cal.add
之前,
cal
的值是多少?将
i
小时添加到
cal
的当前值中的结果是什么?想想:在循环的每个步骤中,
i
的值是多少?
cal在调用
cal.add
之前?将
i
小时数添加到
cal
的当前值中的结果是什么?@FinnD yah我知道,这也很好@Draken@FinnD是的,我知道,这也很棒@Draken如果这对你有效,那么请接受对你有效的解决方案来结束问题如果这对你有效,那么p请接受对您有效的解决方案来解决问题