プロが教えるわが家の防犯対策術!

分を表す数字(int型)を時間形式に直しString型で返す
以下のようなメソッドを作成したいのですが、
実装方法を教えて頂けないでしょうか↓

/**
* 分(int型) → 時間:分:秒(String型) に直して返すメソッド。
* int minute = 120;
* String time = timeFormat( minute );
* この時、timeの値は、" 2:00:00 "
*/
public String timeFormat(int minute) {
~ 実装 ~
}

A 回答 (6件)

 以下のように、数値として修正してから、文字列として調整する方法もあります。



public class minute {

public static void main(String args[]) {

int Minute;

try {

Minute = Integer.parseInt(args[0]);
System.out.println(timeFormat(Minute));

} catch (Exception e) { System.out.println(e.toString()); };

};

public static String timeFormat(int minute) {

int i, j;
boolean f;
StringBuffer s;

if (minute < 0) {
minute = -minute;
f = true;
}
else f = false;

i = ((minute / 60) * 100 + (minute % 60)) * 100;

s = new StringBuffer(Integer.toString(i));
j = s.length();
if (j > 2) s.insert(j - 2, ':');
if (j > 4) s.insert(j - 4, ':');
if (f) s.insert(0, '-');

return(s.toString());

};

}
    • good
    • 0

import java.text.DecimalFormat;



public class TimeTransrater {

public static void main(String[] args) {
//120→2:00:00
System.out.println(getStringTime(120));
//0→0:00:00
System.out.println(getStringTime(0));
//-1→-0:01:00
System.out.println(getStringTime(-1));
//-120→-2:00:00
System.out.println(getStringTime(-120));
//-119→-1:59:00
System.out.println(getStringTime(-119));

}

public static String getStringTime(int minutes) {
String sign = minutes >= 0 ? "" : "-";
int hour = Math.abs(minutes / 60);
int min = Math.abs(minutes % 60);
int sec = 0;
String separater = ":";
String ret =
sign
+ hour
+ separater
+ new DecimalFormat("00").format(min)
+ separater
+ new DecimalFormat("00").format(sec);
return ret;
}
}

勘違いしてました。
時:分:秒だったのですね。
マイナスの値にも対応してみました。
    • good
    • 0

public static String getStringTime(int minutes) {


int m = minutes / 60;
int sec = minutes % 60;
int msec = 0;
String separater = ":";
return m
+ separater
+ new DecimalFormat("00").format(sec)
+ separater
+ new DecimalFormat("00").format(msec);
}

こうやればできますけど。
でもhourスケールまで伸びたときとかは考慮しなくていいのですか?
    • good
    • 0

120→2:00:00


の最後の00っていったい?
    • good
    • 0

#1の方とやってることは一緒。


DecimalFormat myFormat = new DecimalFormat("00");
return (myFormat.format(minute / 60) + ":" +
 myFormat.format(minute % 60) + ":00");
 

この回答への補足

結果が「02:00:00」と出たのですが
出来れば、時間が一桁の時は最初の0を取って
「2:00:00」と表示したいのですが、
そのような事は可能でしょうか・・?
もし可能でしたら、方法を、教えて頂けないでしょうか・・
度々すみません

補足日時:2003/08/27 18:58
    • good
    • 0

日時系の関数はそれなりにありますが、このケースの場合は単純に計算すればよいのでは?


※ テストしていないため、動作保証はできません…。
________________________

public String timeFormat(int minute) {
String strRet;
String sHH;
String sMM;
int iHH;
int iMM;

iMM = minute % 60;
iHH = (minute-iMM) / 60;

if (iHH < 10 )sHH = "0" + iHH;
elsesHH = "" + iHH;

if (iMM < 10 )sMM = "0" + iMM;
elsesMM = "" + iMM;

strRet = "" + sHH + ":" + sMM + ":00";

Return strRet;
}
    • good
    • 0

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