• ベストアンサー

時間の比較

はじめまして。Java初心者です。 Javaの時間(分)比較にて困っています。 ある対象の日付を現在時刻から10分経過しているかチェックする プログラムを作成しようとしています。 対象日付A:20070217 100000 現在時刻B:20070217 100500 C= B.getTime()-A.getTime() まではかけているのですが、Cの結果を分に変換しようとして うまくできません。 申し訳ないですが、ご教授ください。 よろしくお願いいたします。

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

  • ベストアンサー
noname#30536
noname#30536
回答No.2

補足のコードを見ましたが、正しい値を返しそうですよ。 A, BそれぞれのDate値はどこから取得してものですか? まずは値をコンソールなどに出力して、本当に正しい値か確認してみてはどうですか?

naobistro
質問者

お礼

こんばんは。回答ありがとうございます。 値をコンソールに出したところ、文字の変換部分でバグってました。 いろいろありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • CXI00554
  • ベストアンサー率27% (57/205)
回答No.1

うまくできないとは、どのようになってしまうのですか? "C"のクラスは何ですか。 APIのドキュメントを何回も何回も見ましたか?

naobistro
質問者

お礼

解決いたしました。ありがとうございました。

naobistro
質問者

補足

CのクラスはLongです。 APIのドキュメントは見ましたがだんだん混乱してわからなくなってしまいました。 下記のようにして分を取得して10分としているのですが、 10分以内にAの値をセットしても10以上の値が戻ってきてしまいます。 long diff = B.getTime() - A.getTime(); Date diff_date = new Date(diff); Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("JST")); cal.setTime(diff_date); int min = cal.get(Calendar.MINUTE); 申し訳ないですが、ご教授ください。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • EXCELの時間計算

    セルA1に、「9:43:20」と時刻が入力されています。 セルB1に、「3.2」と時間(分)が入力されています。 セルC3には、A1の時刻から,B1の時間が経過した後の時刻を 表示させたいです。 ※B1の「3.2」を3.2分(3分12秒)として計算したいです。 C3の計算式を教えてください。 ※計算した結果の時刻は,9:46:32です

  • 時間の比較

    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クラスいろいろ使って見たんですが・・ 何かいいアイディアありませんか? やはり一つ一つ時間同士、分同士比較していくのが一番手っ取り早いのでしょうか? いいメソッドなどあれば教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 時間の比較をしたい

    たとえば データ(1) A:11時 B:13時 データ(2) A:18時 B:0時 データ(3) A:23時 B:3時 現在時刻が12時の場合 データ(1)が抽出 現在時刻が17時なら データ(2)(3)が抽出 現在時刻が0時なら データ(2)(3)が抽出 のように 現在時刻が期間AからBに該当する場合に データがHITするような SQLを作りたいのですが うまくいきません where 'now' between A and B; ではうまくいきませんでした 何か良いSQLはありませんか? ちなみにTIME型データです それ以外のデータ型でもいいです 希望通りの動きをするなら・・・ よろしくお願いします

  • エクセルで日付データの比較/判定でカウント

    エクセルで日付データの比較/判定でカウント A1に 2006/2/22 A2に 2006/2/23 ---------- という日付データが入っている。 またc1~c4に c1:2006/2/24+時間  (例2006/2/24 07:18) c2:2006/2/23+時間 c3:2006/2/23+時間 c4:2006/2/22+時間 ---------- という時刻まで含む日付データが入っている。 (処理)A1とC列のデータの日付けが同じものは1つc4だけなのでカウントし1件とその横の B列(B1)にカウント件数を表示したい。 B1に書く式はどのようにすればよいか。よろしくお願いします。

  • セル上の時刻と現在の時刻の比較

    セル上の時刻と現在の時刻の比較 例えば、A1に 13:00 があって、VBA上にnowから取得した現在の時刻とA1セルの13時という時刻を比較したいのですが、これだとA1の方が1900年の時刻となるので比較の意味がありません。そこで、セル上に時刻を手動で書いたときにも比較可能な方法はありませんでしょうか。 セル上に年月日も入力すれば可能と思いますが、それだと運用上の手間が増えるので時刻のみ指定したいのです。日付部分を省いた時刻の情報のみ比較できれば可能とは思うのですが、、 よろしくお願いします。 -- エクセル2003

  • [COBOL]日付比較

    現在COBOLで以下のようなプログラムを作成しています。 受付日と今日の日付を比較して1ヶ月経過したデータと振り分ける。  1ヶ月経過したものは、削除分のデータとしてディスクに保存  1ヶ月経過していないものは、保存分のデータとしてディスクに保存 ただし、入力データは、受付日(6桁)に書かれているのは6桁(例:080524) 本日の日付は、システム時間で8桁(例:20080824) このままでは、桁数が違うので、比較することができないため、受付日を8桁にしたいと考えています。 つまり、「'20'+受付日」としたいのです。 この場合、どのようにすればよろしいのでしょうか? よろしくお願いします。

  • 組込みプログラム言語の容量・速さの比較

    組込みプログラム言語の容量・速さの比較 組込みプログラムで使用する言語には ・C(++) ・アセンブリ言語 ・JAVA ・(組込み用JAVAのJ2ME) ・(組込み用JAVAのKVM) がありますが、ターゲットデバイス(マイコンなど)へロードする ロードモジュールの状態でのサイズ(容量)は同じなのでしょうか。 違うのであればどれくらいの差があるのでしょうか。 私の予想では  アセンブリ言語 < C(++) < JAVA ですが、どれくらいの差があるのか想像がつきません。 また処理の速さは  アセンブリ言語 > C(++) > JAVA になるのでしょうか。

  • エクセルで日付データの比較/判定で区分条件満たすカウント

    エクセルで日付データの比較/判定でカウント A1に 2006/2/22 A2に 2006/2/23 ---------- という日付データが入っている。 またH列に H1:2006/2/24+時間  (例2006/2/24 07:18) H2:2006/2/23+時間 H3:2006/2/23+時間 H4:2006/2/22+時間 H5:2006/2/21+時間 ---------- という時刻まで含む日付データが入っている。 (処理)A1とH列のデータの日付けが同じものは1つH4だけなのでカウントし1件とその横の B列(B1)にカウント件数を表示したい。 B1に書く式は =FREQUENCY(H:H,A1+"23:59:59")-FREQUENCY(H:H,A1-"0:00:01") とすればいいのですが、(ここからが質問です) J列:カウント対象区分(m、d、n) J1:m J2:m J3:n J4:d J5:d 更にJ列にカウント対象区分が入っておりそのうち時刻日付をマッチングする対象としてH列の日付時刻データのうち、区分nの付いているものとだけを判定対象に行いカウントするためにはどう式を付けくわえればいいですか

  • ACCESSで2つフィールドの日付を比較して新しい日付を表示するには。

    お世話になっております。 ちょっとつまづいてしまったので、知恵をお貸しください。 AとBのフィールドにそれぞれ日付が入っていて、比較して新しい日付のものをCのフィールドに表示させたいと思っています。 例: A:2006/05/31  B:2006/06/01 → C:2006/06/01 A:2006/06/02  B:2006/06/01 → C:2006/06/02 A:2006/06/01  B:2006/06/01 → C:2006/06/01 以上のようにするにはどうすればよいでしょうか。 よろしくお願いいたします。

  • Excelの時間計算について

    日付と時間が入力されたセルがあるのですが、 そのセル内容を合体させて別のセルに表示しようと思っています。 例)A1に日付「2009/07/11」、B1に時間「15:00」と入力されていた   場合に C1に「2009/07/11 15:00」を表示させ、実時間として   認識させたい。D1に表示された現在の時刻「=NOW()」からの   経過時間をE1に表示させるのが目的。 表示だけでしたらC1に 「=TEXT(A1,"yyyy/mm/dd")&" "&TEXT(B1,"hh:mm")」 と入力すれば解決するのですが、 時間として認識させるにはどのようにすればよいでしょうか? 因みにB1のセルの時刻は書式設定を「yyyy/mm/dd hh:mm」として 表示させると「1900/01/00 15:00」となります。 D1に表示された現在の時間「=NOW()」からどれだけ時間が 経過しているかを計算させ、E1に表示するのが最終目的です。 どなたかお知恵を貸していただけませんでしょうか? よろしくお願いします。