人生最悪の忘れ物

分(int型)を時間(String型)に直したいのですが↓

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

A 回答 (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 + "]");
    • good
    • 0

こんばんは、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関数で良さそうな物が思い出せないので・・・。
    • good
    • 0

こんばんは



if ( minute/60 && minute%60 ){
  time = ""+minute/60+"時間"+minute%60+"分" ;
} else if ( minute/60 ){
  time = ""+minute/60+"時間" ;
} else {
  time = ""+minute+"分" ;
}

で良いのかな。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!