2016-11-15 1 views
-2

私はjavaでホテル予約システムを作成するプロジェクトを行っています。私のコードが正しい(明らかにisnt)ように私は助けが必要ですが、それは私に正しい結果を与えるように見えません。特定のカレンダー変数に日を追加しても動作しないようです

私がしたいことは、チェックインとチェックアウトの2つの日付があることです。 私はチェックインの日付をユーザーに尋ね、日付のチェックを入力に設定します。その後、私は彼/彼女が滞在する夜の数を求める。チェックイン日と宿泊日数を使用することで、予約の費用を計算できるはずですが、チェックアウト日を計算するためにチェックイン日を追加すると、チェックイン日がチェックアウト日に設定され、費用が計算されますそこから。

例:チェックイン=木、夜の数= 2

は土曜日(木+ 2)にチェックイン日を設定しすぎたものにチェックアウト日付を設定するが、月曜日に座ってから滞在のコストを算出します。

String days [] = {"MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY",   "SATURDAY", "SUNDAY"}; 
Calendar ci = r.getStartDate(); 
System.out.println("Original: " + ci.getTime()); 
Calendar co = ci; 

for(int y = 0; y < nights; y++) 
{ 
    co.add(Calendar.DAY_OF_MONTH, 1); 
    int dayOfWeek = co.get(Calendar.DAY_OF_WEEK); 
    cost = cost + rates[dayOfWeek-1]; 
} 

System.out.println("From: " + r.getStartDate().getTime()); 
System.out.println("Until: " + co.getTime()); 
r.setEndDate(co); 
cost = cost - (cost*disc); 
r.setCost(cost); 
} 

オリジナルの出力は正しい日付ですが、奇妙なものとは異なります。

助けていただけたら幸いです!

+0

客室、ホテル、予約は日付を追加するために何をしなければなりませんか?まったく何もない。あなたの質問を削除して、関連する内容のみを表示してください。 – Bohemian

+0

うまくいけば大丈夫だ! –

+0

@ボヘミアン撲滅! –

答えて

0

あなたの開始と終了のカレンダーオブジェクトが同じオブジェクトであるため、あなたの開始日と終了日が同じである:

Calendar ci = r.getStartDate(); 
Calendar co = ci; 

あなたがcoに行う任意の変更は、あまりにもr.getStartDate()(およびciを変更するが、あなたれますその変数を使用しないでください)。

Calendar co = new Calendar(); 
co.setTime(r.getStartDate().getTime()); 

を、完全にci変数を削除します。

は、私はあなたがこれをしたいと思います。

関連する問題