• 締切済み

分を表す数字(int型)を時間形式に直しString型で返したい

分を表す数字(int型)を時間形式に直しString型で返す 以下のようなメソッドを作成したいのですが、 実装方法を教えて頂けないでしょうか↓ /** * 分(int型) → 時間:分:秒(String型) に直して返すメソッド。 * int minute = 120; * String time = timeFormat( minute ); * この時、timeの値は、" 2:00:00 " */ public String timeFormat(int minute) { ~ 実装 ~ }

  • Java
  • 回答数6
  • ありがとう数8

みんなの回答

  • ssr-y6
  • ベストアンサー率71% (5/7)
回答No.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()); }; }

  • chi-kon
  • ベストアンサー率43% (58/132)
回答No.5

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; } } 勘違いしてました。 時:分:秒だったのですね。 マイナスの値にも対応してみました。

  • chi-kon
  • ベストアンサー率43% (58/132)
回答No.4

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スケールまで伸びたときとかは考慮しなくていいのですか?

  • chi-kon
  • ベストアンサー率43% (58/132)
回答No.3

120→2:00:00 の最後の00っていったい?

回答No.2

#1の方とやってることは一緒。 DecimalFormat myFormat = new DecimalFormat("00"); return (myFormat.format(minute / 60) + ":" +  myFormat.format(minute % 60) + ":00");  

kawaen
質問者

補足

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

  • Mizyu
  • ベストアンサー率41% (245/593)
回答No.1

日時系の関数はそれなりにありますが、このケースの場合は単純に計算すればよいのでは? ※ テストしていないため、動作保証はできません…。 ________________________ 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; else sHH = "" + iHH; if (iMM < 10 ) sMM = "0" + iMM; else sMM = "" + iMM; strRet = "" + sHH + ":" + sMM + ":00"; Return strRet; }

関連するQ&A

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

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

    • ベストアンサー
    • Java
  • 数字をString型に変換するには?

    10~50のリストを作成したいのですがaddItemメソッドがString型でないといけないのですがどうすればいいかわかりません。 回答のほどよろしくお願いいたします。 あと、メソッドがたくさん掲載しているサイトがあれば教えてください。 よろしくお願い致します。 //Sizeチョイスの生成 for(int i = 10; i <= 50; i++){ addItem(iの値をString型にして入れたい); }

    • ベストアンサー
    • Java
  • 【C++/CLI】int型からString型への変換

    C++/CLIにて、int型変数の値 int test1 = -1; int test2 = -10; をString型に変換し「-1」「-10」といったような文字列に、 変換しようと思っています。 String::Format( "{0:D1}", test1 ); String::Format( "{0:D2}", test2 ); といった方法で可能なのは分かったのですが、 この方法だと、Formatの引数を値の桁数に応じて変えねばなりません。 ※String::Format( "{0:D2}", test1 );  のようにすると、「-01」となってしまうため。 桁数を意識せずに、int型変数の値をそのまま文字列に変換するような 良い方法があれば、ご教示お願いできませんでしょうか?

  • 分を表す数値(int型)を、小数点に直したい

    例えば、 左↓の分を表すint型数値の値を、 右↓のような小数点の形式に直す方法を教えて下さい。 どちらもint型で。 もし、int型で小数点が扱えないなら、最適な型で直したいのですが・・。 ※小数点以下の桁数は一桁です。 ----------------------------- 120 (分) → 2  (時間) 125 (分) → 2.1 (時間) 130 (分) → 2.2 (時間) 135 (分) → 2.3 (時間) 140 (分) → 2.3 (時間) 145 (分) → 2.4 (時間) 150 (分) → 2.5 (時間) 155 (分) → 2.6 (時間) 160 (分) → 2.7 (時間) 165 (分) → 2.7 (時間) 170 (分) → 2.8 (時間) 175 (分) → 2.9 (時間) 180 (分) → 3 (時間) -----------------------------

    • ベストアンサー
    • Java
  • intの数字をtimestampに変換したい

    php5,mysql5.1の環境です。 mysqlのフィールドにint(11)でunix timestampを挿入しています。 その11桁の数字の羅列をunixのタイムスタンプ形式に変更したいのですがどのようにすればよいのでしょうか。 うまく説明できないのですが、その11桁の数字はタイムスタンプとしてphp側で処理できないのでしょうか。 mysqlの種別カラムにおいて、int(11)とtimestampは同一のデータとして処理できないのでしょうか。

    • ベストアンサー
    • PHP
  • 計算した数字を時間表示したい。

    エクセルの表示形式の変更で、 「0.423185571490656」 このような数字を、 「0時間25分23秒」、 若しくは、 「0-25'23"」のような表示をしたいのですが、 何か良い方法はありますか? ご教授お願いいたします。

  • java String[]

    メソッドを作成します 引数で String[] をもらいその個数を調べます その個数分の String[] を確保して 操作した文字列をセットして String[] の先頭ポインタをreturn します String[] の個数を調べる方法と その数だけ配列の確保の方法 を調べていますがよく分かりません よろしくお願いします

  • int → char → string の変換

    お世話になります。 現在 VisualStudio2005 C# のコンソールアプリを作っています。 以下の場合どのようにすれば解決しますでしょうか? int code = 0xF97E; // この値をF97Eという文字(外字)にしたい 以下のように記述してみましたが、駄目でした。 int hex1 = ((code & 0xff00) >> 8); // (hex1==0xF9)になる int hex2 = (code & 0x00ff); // (hex2==0x7E)になる string s = char.ToString((char)hex1) + char.ToString((char)hex2 )); // (s==u~==0x757E)になってしまう。 原因がわかる方いらっしゃれば教えてください。

  • String typeの引数をつかって 変数はつくれますか?

    いつもお世話になっております。 以下のように、引数を使って、変数をていぎしたいのですが。。。 public static void main(Stirng[] arg){ String hikisuu = "サンプル"; method(hikusuu); } public static void method(String hikisuu){ int hikisuu = 5; } java でこのようなことは可能でしょうか? (実際やったらエラーが出ました...) ほかの方法で、これと同じようなことを実現でくる方法はありますでしょうか? よろしくおねがいします。

    • ベストアンサー
    • Java
  • タイムスタンプを時間に変換

    getTime()メソッドが返した値の、右の3つの数字を消すとタイムスタンプが得られました。1970年からの経過秒らしいです。 このタイムスタンプから yyyy/mm/dd hh:mm:ss のような年月日の表示にしたいのですが、簡単にできる方法はありませんか? i=1189382252 str="" //タイムスタンプを時間に変換 alert(str)