【问题标题】:How to divide dates based on given two dates [closed]如何根据给定的两个日期划分日期[关闭]
【发布时间】:2017-04-17 14:00:38
【问题描述】:

我有一种情况,我必须更新记录记录,如果记录存在于数据库中,并具有有效和到期日期拆分逻辑。

例如以下记录在数据库中已经可用。

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。输出应该如下所示:

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

如果我再次给出了其他日期,它应该像上面一样进行调整。在我的 POC 中,我使用 spring MVC 和我正在使用的 JDBC 模板。有人可以帮我解决这个逻辑吗?

【问题讨论】:

  • 我不明白你在做什么。请详细说明您的问题。
  • 如果我没听错的话,您有一个记录,那么您必须从 2017 年 5 月 20 日起将税率更改为 6%?这意味着将当前记录更新为 2017 年 5 月 19 日的到期日期,并插入一条新记录。你有什么问题?如何读取当前记录?如何更新它?如何插入新记录?如何比较日期?如何从日期中减去一天?什么?它们看起来都很简单的操作,每个都可以通过搜索网络找到,那么您具体的问题是什么?向我们展示您目前拥有的代码以及您遇到的问题。
  • 问题出在 update ,当 db 中有更多记录,都需要更新时,我真的没有逻辑如何处理。例如,现在已经有 2 条记录,然后我给出另一个 8% 的税值,另一个生效日期是 18-05-2017,到期日期就像 21-12-2017 那样,我觉得很难。

标签: java database spring jakarta-ee jdbc


【解决方案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

我完全不确定你到底想要什么,但我想它会类似于这个

编辑:如果您想或多或少地将日期设置为一天,请查看文档,这取决于您用作日期的对象

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-29
    • 1970-01-01
    • 2022-11-04
    • 1970-01-01
    相关资源
    最近更新 更多