前提・実現したいこと
初心者です。
現時刻との差を出力するプログラムをjavaで制作しております。
目標結果は、コマンドプロンプトで、下記に示しました。
時間差は、入力値(123456⇒12:34:56)と現時刻の差です。
$ java クラス名 123456 現時刻 10:40:20 入力時刻 12:34:56 時間差 01:54:36
想定している手順としては下記です。
①現時刻を取得
②入力値123456を12:34:56に変換
③現時刻、入力値を秒数に変換し、引き算をする
④秒数を時刻に変換する
発生している問題・エラーメッセージ
上記記載の手順 【②入力値123456を12:34:56に変換】がうまくできません。
エラーは出ていません。
$ java class 123456 現時刻 10:40:20 入力時刻 09:02:03 時間差
該当のソースコード
入力値6桁の数字が時刻に想定通り変換されるのかを調べています。
import java.util.Date; import java.text.SimpleDateFormat; public class Kadai2{ public static void main(String[] args){ //現在時刻取得 Date date = new Date(); //形式変換 SimpleDateFormat sdformat = new SimpleDateFormat("HH:mm:ss"); //現在時刻表示 String d1 = sdformat.format(date); System.out.println("現在時刻 " + d1); //入力値を取得 int newdate = Integer.parseInt(args[0]); //入力値表示 String n1 = sdformat.format(newdate); System.out.println("入力時刻 "+ n1); //現在時刻を秒数変換 //入力値を秒数変換 //差を求める //long diffTime = d1.getTime()-n1.getTime(); //秒数を時間に変換 //時間差表示 //System.out.println(diffTime); } }
試したこと
別の入力値で試してみました。下記に表示します。
$ java class 345678 現時刻 10:40:20 入力時刻 09:05:45 時間差
どうしてこうなってしまうのでしょうか。
またやり方はあっているのか、ご教示いただけますと幸いです。
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/08/03 04:39