• ベストアンサー

分を表す数値(int型)を、String型の”○時間○分”形式に直したい

分(int型)を時間(String型)に直したいのですが↓ 例えば、 ----------------------------- 1. int minute = 160; 2. String time = '2時間40分' ----------------------------- 1のint型変数minuteの値を、 2のString型変数timeのような形式に直す方法を教えて下さい。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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.2

こんばんは、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)
回答No.1

こんばんは if ( minute/60 && minute%60 ){   time = ""+minute/60+"時間"+minute%60+"分" ; } else if ( minute/60 ){   time = ""+minute/60+"時間" ; } else {   time = ""+minute+"分" ; } で良いのかな。

関連するQ&A