0

私には2つの日付があります:

Date dt1 = new Date("04/11/2013 11:00:00");//date
Date dt2 = new Date("04/12/2013 11:00:00");

次に、このコードを処理して、 から までの週数を把握しますdt1dt2

double tanggal = (dt2.getTime() - dt1.getTime()) / (24 * 60 * 60 * 1000);
double week= (double) Math.ceil(tanggal/7);

このコードと を実行しようとしましthe result week is 1.0dt204/11/2013 11:00:01 、がthe result week is 0.0.

結果を変更するthe result week is 1.0方法dt204/11/2013 11:00:01? dt2そして、7日目まで、または04/18/2013 11:00:01結果が に変わったときに欲しいです2.0。どうやってするか?

4

1 に答える 1

2

私の理解が正しければ、日付の差を最も近い週に丸める必要があります。日時の差が 1 日未満の場合に 0 が返されるのは、四捨五入が早すぎるためです。必要なのは、タイムスタンプをdouble1 日のミリ秒数で割る前にキャストすることだけです。そうすれば、1日も経たない時差を失うことはありません。コードを次のように変更します

double tanggal = ((double)(dt2.getTime() - dt1.getTime())) / (24 * 60 * 60 * 1000);
double week= (double) Math.ceil(tanggal/7);

このようにして、結果は になります1.0

于 2013-04-11T07:34:24.607 に答える