菜鸟在这里!首先,我试图将dateOne
和dateTwo
相互比较,然后将具有最新日期(> 0)
的那个日期作为接受日期,并将其与cutOffDate
进行比较。
如果在cutOffDate
之后,请将其设置为FinalDate
,否则将cutOffDate
设置为FinalDate
。我该如何实现?
我不确定我是否在正确的轨道上,dateOne.compareTo(dateTwo)
出现以下错误:
String类型的方法compareTo(String)不适用于参数(日期)
public DateServiceImpl process(final DateServiceImpl item) throws Exception {
final Date dateOne = item.getDateOne();
final Date dateTwo = item.getDateTwo();
final BigDecimal amountOne= item.getAmountOne();
final BigDecimal amountTwo= item.getAmountTwo();
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yyyy");
String cutOffDate = "01/01/2020";
Date cDate = sdf.parse(cutOffDate);
if ((amountOne.compareTo(BigDecimal.ZERO) > 0) && (amountTwo.compareTo(BigDecimal.ZERO) > 0)){
if (dateOne.compareTo(dateTwo) <= 0) {
item.setFinalDate(cDate);
}
return null;
}
}
您走在正确的轨道上。您只需要另一个比较就可以了。
if (dateOne.compareTo(dateTwo) > 0) {
if (dateOne.compareTo(cDate) > 0) {
item.setFinalDate(dateOne);
} else {
item.setFinalDate(cDate);
}
} else {
if (dateTwo.compareTo(cDate) > 0) {
item.setFinalDate(dateTwo);
} else {
item.setFinalDate(cDate);
}
}
您需要检查日期顺序的每种情况(检查dateOne
是否在dateTwo
之前,并检查dateOne
是否在dateTwo
之后)。然后,对于每个检查,您都必须检查最近的日期是在截止日期之前还是之后。