Java, как зафиксировать время конкретной операции и сравнить ее с другой датой
Дамы и Господа, Решаю задачу, язык Java. В определенном методе происходит пополнение баланса, а в другом методе этого класса происходит списание баланса, моя задача сделать так, что бы списание баланса не могло происходить, если с момента последнего пополнения ни прошло месяца. Для решения необходимо добавить переменную , в которой хранится дата последнего внесения,и тип этой переменной должен быть Calendar или LocalDate.
Т.е. суть вопроса в том как мне привязать пополнение баланса к конкретной дате и какой метод лучше подойдет для сравнения ее с другой датой.
public void put(double toPut) {
// метод зачисляет деньги на счет
if (toPut >= 0) {
balance = toPut + balance;
} else {
System.out.println("Операция не может быть выполнена");
}
}
public void take ( double toTake){
// метод списывает деньги со счета
if (balance > toTake) {
balance = balance - toTake ;
} else {System.out.println("Операция не может быть выполнена");
}
}
Ответы (1 шт):
Автор решения: Алексей Р
→ Ссылка
Как-то так, наверное
import java.time.LocalDate;
class balance
{
public LocalDate lastDate;
public double balance;
public void put(double toPut) {
// метод зачисляет деньги на счет
if (toPut >= 0) {
balance = toPut + balance;
lastDate = LocalDate.of(2022,8,27); // LocalDate.now();
} else {
System.out.println("Операция не может быть выполнена");
}
}
public void take (double toTake){
// метод списывает деньги со счета
if ((balance > toTake) && (LocalDate.now().minusDays(30).compareTo(lastDate)>0)) {
balance = balance - toTake;
} else System.out.println("Операция не может быть выполнена");
}
}
public class Main
{
public static void main(String[] args) {
balance myb = new balance();
myb.put(200);
myb.take(100);
System.out.println("Последнее пополнение было: " + myb.lastDate);
System.out.println("Текущий баланс: " + myb.balance);
}
}
Операция не может быть выполнена
Последнее пополнение было: 2022-08-27
Текущий баланс: 200.0