2016-11-15 53 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变量。