2017-04-17 97 views
-2

我有一個場景,我必須更新記錄記錄,如果記錄存在於數據庫中,並且有效日期和過期日期分開邏輯。如何根據給定的兩個日期劃分日期

例如下面的記錄已經在數據庫中可用。

Item tax effectiveStartDate effectiveEndDate 
1  5% 17-04-2017   31-12-2047 

現在我想用給定的有效開始日期和稅率來更新記錄。

例如,我給了6%的兩個日期稅,然後我需要更新記錄,如果它存在。以下是輸入:

effective start date: 17-04-2017; 
effective end date: 31-12-2047`; 

item : 1 
tax : 6 % 

現在記錄已經存在,現在我想的是,我必須調整生效日期和到期日期,20-05-2017及31-12-2019.the輸出應該像下面這樣:

Item tax effectiveStartDate effectiveEndDate 
1  5% 17-04-2017   19-05-2017 
1  6% 20-05-2017   31-12-2047 

如果我再次給出了一些其他日期,應該像上面那樣調整它。在我的POC中,我使用了Spring MVC和我正在使用的JDBC模板。有人能幫助我理解這個邏輯嗎?

+3

我不明白你正在做使用什麼對象。請詳細說明你的問題。 –

+0

如果我理解你的權利,你有一個記錄,那麼你必須在2017年5月20日之前將稅率變更爲6%?這意味着更新當前記錄的截止日期爲2017年5月19日,並插入新記錄。你有什麼問題?如何讀取當前記錄?如何更新它?如何插入新記錄?如何比較日期?如何從日期中減去一天?什麼?他們看起來都非常簡單,每個人都可以通過搜索網站找到,那麼你的具體問題是什麼?向我們展示您迄今爲止的代碼以及您卡住的位置。 – Andreas

+0

問題是更新,當db中有更多記錄時,這些都需要更新,我真的沒有得到邏輯如何處理。例如,現在已經有2條記錄了,那麼我將給出另一個稅值8%,另一個生效日期爲18-05-2017,到期日期如21-12-2017,那時我覺得它很困難。 – ASR

回答

1

據我所知,如果您對項目1有其他稅收價值(10%f.e.),您將不得不更新數據庫中的所有條目,不是嗎?

如果是這樣的問題,儘量讓所有的人都在名單和做這樣的事情:

//get all from DB 

for(YourObject obj : List){ 
    if(obj.effectiveFinalDate<newObject.effectiveStartDate){ 
     obj.effectiveFinalDate = newObject.effectiveStartDate; 
    } 
    if(obj.effectiveStartDate>newObject.effectiveFinalDate){ 
     obj.effectiveStartDate = newObject.effectiveFinalDate; 
    } 
} 

//persist all 

我不知道在所有關於你想要的是什麼,但我想這將是類似的東西這個

編輯:如果你想日期設置爲每天或多或少,看文件,這取決於你的日期