- ベストアンサー
分を表す数値(int型)を、String型の”○時間○分”形式に直したい
分(int型)を時間(String型)に直したいのですが↓ 例えば、 ----------------------------- 1. int minute = 160; 2. String time = '2時間40分' ----------------------------- 1のint型変数minuteの値を、 2のString型変数timeのような形式に直す方法を教えて下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
一生懸命計算で求めるのもありですが、JAVAの標準APIを利用するはいかがでしょう。 import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; int minute = 160; String time = null; Calendar calendar = null; Date date = null; DateFormat dateFormat = null; // Calendarインスタンスを生成する。 // この時点でシステム日時がセットされている。 calendar = Calendar.getInstance(); // 時、秒をリセットした上で、 // 分を設定する。 calendar.set(Calendar.HOUR_OF_DAY, 0); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MINUTE, minute); // Dateインスタンスを取得する。 date = calendar.getTime(); // FormatAPIを利用して、Dateを書式付きで // 文字列に変換する。 dateFormat = new SimpleDateFormat("H時間m分"); time = dateFormat.format(date); // とりあえず標準出力 System.out.println( "[" + time + "]");
その他の回答 (2)
- arukamun
- ベストアンサー率35% (842/2394)
こんばんは、No.1のarukamunです。 逆もあったんですね。 minute = 0 ; int i = 0 ; while ( time.charAt(i) != '\0' ){ if ( time.charAt(i) >= '0' && time.charAt(i) <= '9' ){ minute *= 10 ; minute += time.charAt(i) - '0' ; i ++ ; } else if ( time.charAt(i) == "時間".charAt(0) && time.charAt(i+1) == "時間".charAt(1) && time.charAt(i+2) == "時間".charAt(2) && time.charAt(i+3) == "時間".charAt(3) ){ minute *= 60 ; i += 4 ; } else { break ; } } で良いですか? String関数で良さそうな物が思い出せないので・・・。
- arukamun
- ベストアンサー率35% (842/2394)
こんばんは if ( minute/60 && minute%60 ){ time = ""+minute/60+"時間"+minute%60+"分" ; } else if ( minute/60 ){ time = ""+minute/60+"時間" ; } else { time = ""+minute+"分" ; } で良いのかな。