Java-每年某个月之前

Java-每年某个月之前,java,date,Java,Date,我如何编写一个方法,允许在每年的某个月之前将一个数字添加到另一个数字?例如,我希望能够在银行每年有一个最高存款金额,然后在下一年重新开始最高存款金额。根据您的评论,我认为您需要的是一个边界检查,以及一个标志,指示是否已经进行了调整 因此,在存款方法中,您将检查当前日期是否在重置最大金额的日期之前或之后。如果是在之后,而您今年还没有重置,请重置。您可以使用类似 private static final double YEARLY_MAXIMUM = 100000; void deposit(do

我如何编写一个方法,允许在每年的某个月之前将一个数字添加到另一个数字?例如,我希望能够在银行每年有一个最高存款金额,然后在下一年重新开始最高存款金额。

根据您的评论,我认为您需要的是一个边界检查,以及一个标志,指示是否已经进行了调整


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

您可以使用类似

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. */
}

您必须在存储和更新的最后一年中保持一定数量的持久性。我想你可以轻松地通过Date课程获得今年的成绩。

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

我假设包装类型是Account或类似的。。描述银行账户的东西。那么您的存款方式将同步如下

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

    }
}

同步可以防止并发访问引起的问题。人们的钱最迂腐。

我不知道你的意思。如果程序正在运行,是否希望在每年的某个特定时间触发某个方法?或者你是在计算日期或天数?我希望能够在银行每年有一个最高存款额。然后第二年,最高存款额又开始了。如果一次有多个储户(比如:银行和账户所有者),那么该方法(或其中的一部分)肯定需要针对某个锁进行同步。。否则(理论上)两个线程可以同时访问同一个方法,并且可能超过年最大值。