2

ユーザーが2つの入力時間(hh:mm)形式を指定できる簡単なプログラムを作成する方法を知りたいです--そして経過時間を出力として受け取ります。

プログラムが実行され、ユーザーが時間入力を書き込むことができるようになります。おそらく、コマンド プロンプトを介して実行される単純なプログラムです。

例、プログラムの実行時:

  1. 開始時間を書いて入力してください!
    (例: ユーザーは 19.14 のように「hh:mm」形式で書き込みます)

  2. 終了時刻を書き込む/入力します: (ユーザーは 23.40 のように「hh:mm」形式で書き込みます)

  3. 出力は次のようになります。

私は時間形式についてGoogleで調べたり、simpledateformatを使用したりしましたが、入力をクラスなどに実装しようとすると、ちょっと混乱しました。

これを解決するのを手伝ってくれる人はいますか?

前もって感謝します。

4

3 に答える 3

0

Joda-TimeAPIを使用する必要があります。

于 2011-10-06T12:10:49.433 に答える
0

私はあなたがこれを探していると思います。

import java.text.*;

    import java.util.*;


    public class DifferenceBetweenTimes {

        public static void main(String[] args) throws InterruptedException{





            Date d1 = new Date( 15, 10, 44);
                   Date d2 = new Date( 15, 30, 44);



            SimpleDateFormat dfm = new SimpleDateFormat ("HH:mm:ss") ;



            System.out.println(dfm.format(d1));

            System.out.println(dfm.format(d2));



           long timeDiff = ( Math.abs( d1.getTime() - d2.getTime()) / 1000 ) / 60;

             System.out.println(timeDiff); 



        }

    }
于 2011-10-06T12:11:56.720 に答える
0

Date コンストラクターへの呼び出しが、あなたが思っていることを行っているとは思いません。

date の 3 つの引数コンストラクターは次のとおりです。

Date(int year, int month, int date) 非推奨。JDK バージョン 1.1 以降、Calendar.set(年 + 1900 年、月、日) または GregorianCalendar (年 + 1900 年、月、日) に置き換えられました。

これを試してください:

Date(int year, int month, int date, int hrs, int min, int sec) 非推奨。JDK バージョン 1.1 以降、Calendar.set(年 + 1900、月、日、時、分、秒) または GregorianCalendar (年 + 1900、月、日、時、分、秒) に置き換えられました。

経過時間だけが気になる場合は、両方に同じ日付をプラグインしてから減算します。

これを試して:

日付 d1 = 新しい日付 (15、10、44); System.out.println(d1.toString());

何の日付が出されているかを確認してください。

  • これが宿題である場合、インストラクターはおそらく日付/時刻 API クラスのメソッドの使用に眉をひそめるでしょう。

java.util.Date をインポートします。

public class SomeOnesHomeWork {

public final int secondsInMinute = 60;
public final int millisecondsPerSecond =1000;
public final int milliPerMinute = secondsInMinute * millisecondsPerSecond;

public int convertMillisecondsToMinutes(long milliseconds){
     return (int) (milliseconds / milliPerMinute);
}

public int differenceInMinutes(long beginTime,long endTime){
    return convertMillisecondsToMinutes(endTime - beginTime);
}

public static void main(String[] argc){

    //Make the dates
    Date d1 = new Date(1999,12,31,23,45,44);
    Date d2 = new Date(1999,12,31,23,59,59);

    //We Could use Static methods, probably should
    SomeOnesHomeWork aHomeWorkObject = new SomeOnesHomeWork();
    System.out.println("The time between two dates in minutes: "
        + aHomeWorkObject.differenceInMinutes(
                d1.getTime(),d2.getTime()));
}

}

于 2011-10-06T13:21:05.980 に答える