• ベストアンサー

時間の比較

String型の変数 a ~f  があるとします。 a = 時間1 b = 分1 c = 秒1 (a時b分c秒) d = 時間2 e = 分2 f = 秒2 (d時e分f秒) これら2つを比較して時間の早いほうを見つけようとしていますがなかなかうまくできません。 Dateクラス、Calenderクラス、TimeStampクラスいろいろ使って見たんですが・・ 何かいいアイディアありませんか? やはり一つ一つ時間同士、分同士比較していくのが一番手っ取り早いのでしょうか? いいメソッドなどあれば教えてください。 よろしくお願いいたします。

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

  • ベストアンサー
  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.7

訂正です。 1.2000年はうるう年でした。(400で割れるので) 2.for(i=1;i<m;i++)はfor(i=0;i<m;i++)

ilovekoushien
質問者

お礼

ありがとうございます! おかげさまで問題解決しました。

その他の回答 (6)

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.6

>そのストリング型の変数を1970年1月1日からのミリ秒で出す出し方はわかりませんか? 1.そのキモは現在までの日数を計算するのであれば  たとえば現在が2005年12月31日だったら  正味35年ですがうるう年があるので  365日X35+9-1(2000年はうるう年でない。)です。 2.2006年m月d日の日数は  mによって一ヶ月に日数がことなるので予め  String str="312831303130313130313031" int DD;  for(i=1;i<m;i++){  DD=DD+Integer.parseInt(str.SubString(i,i+2)) +Integer.parseInt(d);     } あまりjavaはやっていないので一部おかしいかもしれませんがこんな感じでいけそうな気がするのですが。

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.5

>1970年1月1日からのミリ秒で 時分秒しかないのに、意味がないのでは 0時からの秒ならわかるけど

ilovekoushien
質問者

お礼

ありがとうございます。 日付は別のところで用意してあるんです。

  • gimmick
  • ベストアンサー率49% (134/270)
回答No.4

>そのストリング型の変数を1970年1月1日からのミリ秒で出す出し方はわかりませんか? GregorianCalendarクラスのインスタンスを GregorianCalendar(int year, int month, int date, int hour, int minute, int second) で作成して、getTimeInMillis()メソッドを使う。

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.3

x1=Integer.parseInt(a)*3600+Integer.parseInt(b)*60+Integer.parseInt(c) x2=Integer.parseInt(d)*3600+Integer.parseInt(e)*60+Integer.parseInt(f) で単純に比較したほうが解り易いです。

ilovekoushien
質問者

お礼

ありがとうございます。 ぜひ使わせていただきます。 追加質問なのですが そのストリング型の変数を1970年1月1日からのミリ秒で出す出し方はわかりませんか?

  • gimmick
  • ベストアンサー率49% (134/270)
回答No.2

それぞれの時、分、秒を結合した文字列をString#compareTo(String anotherString)で比較すればよいのではないですか? (ただし、時、分、秒が1桁になる可能性がある場合は、0を付けて2桁化しておく必要があります。) もちろん、 >やはり一つ一つ時間同士、分同士比較していく でも構いません。

ilovekoushien
質問者

お礼

ありがとうございます。 追加質問なのですが そのストリング型の変数を1970年1月1日からのミリ秒で出す出し方はわかりませんか?

回答No.1

abcを結合したのとdefをしたのを比較すればよいのでは?

ilovekoushien
質問者

補足

それを1970年1月1日からのミリ秒で出す出し方はわかりませんか?