public LocalDate getTradeDate(Earning earning) { ANNCMT_TIME anncmtTime = earning.getAnncmtTime(); switch (anncmtTime) { case AFTER_CLOSE: return earning.getDate(); case BEFORE_OPEN: return getPreviousTradingDate(earning); case DURING_MKT_HRS: return getPreviousTradingDate(earning); default: return null; } }