0

これはアウトプットです:

時刻は午前8時3分8秒 時刻は8時3分8秒

これは望ましい出力です:

時刻は 08:03:08 AM 時刻は 08:03:08

したがって、これを目的の出力に変換する必要があります。8:03:04 の場合、上記のように 8 時間 3 分 4 秒を表示する必要があります。1 桁の前にゼロを付けて

  package Assignment2;


  class clock{

  public static void main(String[] args) {
   clock timer = new clock();
   timer.setTime(8,02,59);
    timer.incTime(9);
     //timer.incTime(60);
       timer.display12hr();
     timer.display24hr();



           }


private int minutes, hours, seconds;

clock()
{
    minutes = 0;

    hours = 0;

    seconds = 0;

}
clock(int x, int y, int z)

{

    hours = x;

    minutes = y;

    seconds = z;
}

void setTime(int x, int y, int z)
{
    hours = x;
    minutes = y;
    seconds = z;
}

void incTime(int y)

{

    if (seconds + y > 59)

    {

        seconds = (seconds + y) - 60;
        minutes++;
    }
    else
        seconds += y;

}

void display12hr()

{
    if (hours > 12)
    {
        System.out.println("The time is " + (hours - 12) + ":" + minutes + ":" + seconds
                + "PM");
    }

    else
    {
        System.out.println("The time is " + (hours) + ":" + minutes + ":" + seconds +"AM");
    }
}

void display24hr()
{
    System.out.println("The time is " + (hours) + ":" + minutes + ":" + seconds);
}

}

4

4 に答える 4

2

フォーマットされた出力を使用してみてください:

System.out.printf("%02d:%02d:%02d", hours, minutes, seconds);

こちら で説明されているように、数字が 2 桁に満たない場合は数字に 0 が埋め込まれます

于 2013-09-07T02:31:17.380 に答える
0

印刷する任意の数値について、10 未満の場合は、先頭に 0 を追加する必要があります (すべての値が 2 か所に印刷されると仮定します)。機能のための仕事のように聞こえます...

于 2013-09-07T02:28:38.090 に答える
0

Calendar オブジェクトと SimpleDateFormat オブジェクトを使用すると、豊富な日付と時刻の機能と豊富な日付と時刻の書式設定機能がそれぞれ提供されます。

クラスと同様に時間の測定を手動で制御できます....

    String datePattern = "hh:mm:ss";
    SimpleDateFormat formatter = new SimpleDateFormat(datePattern);
    Calendar cal = Calendar.getInstance(Locale.US);
    System.out.println("Time = " + formatter.format(cal.getTimeInMillis()));
    cal.clear();
    cal.set(2013, 8, 6, 0, 0, 0);
    System.out.println("Start Time = " + formatter.format(cal.getTimeInMillis()));
    cal.set(2013, 8, 6, 8, 2, 59);
    System.out.println("Start Time = " + formatter.format(cal.getTimeInMillis()));
    cal.add(Calendar.SECOND, 9);
    System.out.println("End Time 12 hours = " + formatter.format(cal.getTimeInMillis()));
    datePattern = "HH:mm:ss";
    formatter = new SimpleDateFormat(datePattern);
    cal.add(Calendar.HOUR, 8);
    System.out.println("End Time 24 hours = " + formatter.format(cal.getTimeInMillis()));

結果の出力:

    Time = 12:32:31
    Start Time = 12:00:00
    Start Time = 08:02:59
    End Time 12 hours = 08:03:08
    End Time 24 hours = 16:03:08

または、単にイベントに関連付けられた開始時刻と終了時刻が必要な場合....

    datePattern = "yyyy-mm-dd hh:mm:ss:SS";
    formatter = new SimpleDateFormat(datePattern);
    System.out.println("start = " + formatter.format(Calendar.getInstance(Locale.US).getTimeInMillis()));
    System.out.println("end = " + formatter.format(Calendar.getInstance(Locale.US).getTimeInMillis()));

結果の出力:

    start = 2013-32-07 12:32:31:656
    end = 2013-32-07 12:32:31:656

目的によって異なりますが、選択肢はたくさんあります。

于 2013-09-07T04:43:36.813 に答える