- taro
- ぬし
- 会議室デビュー日: 2003/10/20
- 投稿数: 316
|
投稿日時: 2004-01-30 10:21
taroです。はじめまして。
日数が返るのでよければ、
| コード: |
| gap = gap / (1000*3600*24);
|
でいかがでしょうか?
Math.ceilを使う意味は自分にもよく分かりませんでした。
win-winさんの紹介されてるURLの以下のメールくらいやればもっと正確に出ると思います。
(秒単位の計算ではうるう秒に対応できませんので)
http://java-house.jp/ml/archive/j-h-b/049924.html
(URL修正しました)
[ メッセージ編集済み 編集者: taro 編集日時 2004-01-30 10:43 ]
|
- 架空兎
- ベテラン
- 会議室デビュー日: 2003/08/18
- 投稿数: 78
- お住まい・勤務地: さいたま氏
|
投稿日時: 2004-01-30 10:30
ちょっと .NET 風に。。。^^;
# .NET では TimeSpan という構造体がある。
#構造体だけどコンストラクタとメソッドはある。
| コード: |
|
public class TimeSpan {
private long millis;
public TimeSpan(long millis) {
this.millis = millis;
}
public int getDays() {
return this.getTotalHours() / 24;
}
public int getTotalHours() {
return this.getTotalMinutes() / 60;
}
public int getTotalMinutes() {
return this.getTotalSeconds() / 60;
}
public int getTotalSeconds() {
return (int)(this.millis / 1000);
}
public long getTotalMillis() {
return this.millis;
}
}
|
それぞれのメソッドの中で計算するか、コンストラクタで計算して
それぞれの値を保持してそれを返すかはお任せします。^^;
|
- 想馬
- 大ベテラン
- 会議室デビュー日: 2003/05/29
- 投稿数: 245
- お住まい・勤務地: 神奈川・東京
|
投稿日時: 2004-01-30 10:34
こんな感じでどうでしょうか?
| コード: |
|
import java.util.*;
public class Test{
Test(){
// インスタンス取得
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
// 時間フィールドクリア
c1.clear();
c2.clear();
// 比較する日付をセット
c1.set( 2004, Calendar.JANUARY, 30 );
c2.set( 2003, Calendar.JANUARY, 31 );
Date t1 = c1.getTime();
Date t2 = c2.getTime();
// 日付の差を求める
long diff = t1.getTime() - t2.getTime();
// 日付の差 diff はミリ秒になっているので、
// 日数に計算して表示する
System.out.println( ( diff / 1000 / 60 / 60 / 24 ) );
}
public static void main( String argv[] ){
Test app = new Test();
}
}
|
#日付をセットするところが紛らわしいので修正
#でゅうくさん、御指摘ありがとうございます。
[ メッセージ編集済み 編集者: 想馬 編集日時 2004-01-30 16:22 ]
|
- おかもと
- 大ベテラン
- 会議室デビュー日: 2003/06/08
- 投稿数: 182
|
投稿日時: 2004-01-30 10:37
もう試していると思いますが、Math.ceilを外してみてはどうでしょうか?
今回の用件では必要なさげです。引数の型もdoubleですし・・・。
|
- がるがる
- ぬし
- 会議室デビュー日: 2002/04/12
- 投稿数: 873
|
投稿日時: 2004-01-30 12:26
ども。がると申します。
以下、7割がた戯言なので、かるく読み流していただければ(笑
「どうもメソッドが見つからない」のであれば、とりあえず
「クラス使わずに自作」ってのはいかがでしょうか?
ちなみに日付の差分を求めるのであれば、以下の単語をGoogle
あたりで調べると面白い情報が入ると思います。
・グレゴリウス暦
・ジュリアン
ヒント。
・グレゴリウス暦ってのは、現在我々が慣れ親しんでいる暦です。
・ジュリアン暦ってのは、ある一点から「何日経過したか?」
という暦です
|
- たーぞう
- ぬし
- 会議室デビュー日: 2003/08/08
- 投稿数: 317
- お住まい・勤務地: お花畑
|
投稿日時: 2004-01-30 12:40
| 引用: |
|
がるがるさんの書き込み (2004-01-30 12:26) より:
ども。がると申します。
以下、7割がた戯言なので、かるく読み流していただければ(笑
(略)
・グレゴリウス暦
・ジュリアン
(略)
|
すみません戯言のレスですですが。
「グレゴリウス」と書くなら「ユリウス」と書いてほしいです(笑)。
|
- がるがる
- ぬし
- 会議室デビュー日: 2002/04/12
- 投稿数: 873
|
投稿日時: 2004-01-30 13:28
ども。がるです。
| 引用: |
|
たーぞうさんの書き込み (2004-01-30 12:40) より:
すみません戯言のレスですですが。
「グレゴリウス」と書くなら「ユリウス」と書いてほしいです(笑)。
|
しもた(笑
確かに「グレゴリウス暦」であるなら「ユリウス暦」で
あるべきですな ^^;
# ジュリアンだとグレゴリアンになってしまう(笑
|
- ほむら
- ぬし
- 会議室デビュー日: 2003/02/28
- 投稿数: 583
- お住まい・勤務地: 東京都
|
投稿日時: 2004-01-30 13:42
ほむらです。
Javaで関係あるのか知りませんけど日付計算でceilを使用する理由は
Excelでセルの書式を数値にして日付計算するとかわるかも。
#ceilの利用自体は一般的?
|