2017-04-17 14 views
-2

私はレコードレコードを更新する必要があるシナリオが1つあります。与えられた2つの日付に基づいて日付を分割する方法

たとえば、以下のレコードはすでにデータベースで使用できます。

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

ここで、有効な開始日と税率でレコードを更新したいとします。

たとえば、税金が6%の2つの日付を指定している場合は、そのレコードを更新する必要があります。以下は入力です:

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で私は使用しているJDBCテンプレートで春のMVCを使用しています。誰かがこの論理について私を助けることができますか?

+3

私はあなたがやろうとしているのか理解していないとして使用するもののオブジェクトに依存します。あなたの質問を精緻にしてください。 –

+0

私はあなたが正しいと理解していれば、あなたは1つの記録を持っていますので、2017年5月20日現在の税率の変更を6%にしなければなりませんか?つまり、現在のレコードの有効期限が2017年5月19日になるように更新し、新しいレコードを挿入することを意味します。あなたの問題は何ですか?現在のレコードを読むには?それを更新するには?新しいレコードを挿入するには?日付を比較するには?日付から1日を引く方法は?何?それらはすべてかなり単純な操作のように見えますが、ウェブを検索するとそれぞれ見つけることができるので、あなたは*特定の*問題は何ですか?あなたが今までに持っているコードとあなたが立ち往生しているコードを見せてください。 – Andreas

+0

問題は更新されています.dbのレコードがすべて更新される必要がありますが、更新する必要があります。論理を処理する方法が実際にはありませんでした。たとえば、現在2つのレコードが存在し、別の有効な日付18-05-2017で別の税額8%を与えています。有効期限は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 

私はすべてであなたが正確にしたいですかについてわからないが、私はそれが似たようなことになると思いますこの

編集するには:あなたは、多かれ少なかれ、ドキュメントを見て一日に日付を設定する場合、それはあなたが日付

関連する問題