2016-11-15 54 views
-2

我正在做一個關於在java中創建酒店預訂系統的項目。我需要幫助,因爲我覺得我的代碼是正確的(顯然不是),但它似乎沒有給我正確的結果。將日期添加到某個日曆變量似乎不起作用

所以我想要做的是我有一個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

@Bohemian剝光! –

回答

0

你的開始和結束日期是相同的,因爲你的起點和終點日曆對象相同對象:

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

你做co任何修改也被修改r.getStartDate()(和ci過,但你從不使用該變量)。

我懷疑你想這樣做:

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

而且完全刪除ci變量。