2010-11-25 48 views
0

我该如何编码一种方法,允许在每年的某个月之前将数字添加到另一个数字中?例如,我希望能够在银行中获得每年最高存款金额,然后在第二年再次开始最高存款金额。Java - 在每年的某个月之前

+0

我不知道你的意思。如果程序正在运行,您是否需要每年在特定时间触发的方法?还是你想计算日期或天数? – DGH 2010-11-25 01:07:36

+0

我希望能够在银行每年最高存款金额。然后第二年最高存款金额再次开始。 – Chris 2010-11-25 01:11:59

回答

0

根据您的评论,我认为您需要的是边界检查,以及调整是否已经发生的标志。

因此,在您存款方法中,您将检查当前日期是否在最大金额重置日期之前或之后。如果它在之后,并且今年还没有重置,请重置。

0

你可能有这样的事情

private static final double YEARLY_MAXIMUM = 100000; 

void deposit(double amount) { 
    if (yearLastUpdated != thisYear) { 
     amountLeftForDeposit = YEARLY_MAXIMUM; 
     yearLastUpdated = thisYear; 
    } 
    /* ... Code for deposit, checking that we're not busting this year's limit. */ 
} 

你必须照顾持久性的amountLeftForDeposit和yearLastUpdated。我认为你可以通过Date类轻松获得thisYear。

0

除了M. Joanis的答案(见我的评论):

我假设,包装类型的帐户或类似的东西..描绘一个银行帐户。然后您的存款方式将如下同步:

void deposit(double amount) { 
    synchronized(this /* Account class instance */) { 

    } 
} 

同步保护您免受并发访问导致的问题。人们是他们的钱最迂腐..