- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我的开始日期为:2014-09-20,结束日期为2014-09-23
我有一张 map ,其中包含类似的值
key(revision) Value
109 2014-06-17
110 2014-09-23
我需要输出采用以下格式
Start date End date revision
2014-09-20 2014-09-22 109
2014-09-23 2014-09-23 110
我有以下代码,但如果提供的开始日期或结束日期相同,则会失败。RevisionInfo 是包含 start_date(joda DateTime)、end_date(joda DateTime) 和 revision(Integer) 的 bean 类
public static void main(String[] args) {
DateTime startDate = new DateTime("2014-09-20");
DateTime endDate = new DateTime("2014-09-23");
Map<Integer, DateTime> revisions = new HashMap<Integer, DateTime>();
revisions.put(109, new DateTime("2014-06-17"));
revisions.put(110, new DateTime("2014-09-23"));
Map<Integer, DateTime> sortedRevisions = new TreeMap<Integer, DateTime>(revisions);
DateTime nextRevisionStartDate = startDate;
Integer previousRevision = null;
List<RevisionInfo> revisionInfos = new ArrayList<RevisionInfo>();
for (Integer revision : sortedRevisions.keySet()){
if(sortedRevisions.get(revision).isAfter(endDate) ){
break;
}
if(sortedRevisions.get(revision).isEqual(startDate) || sortedRevisions.get(revision).isAfter(startDate) ){
if(revisionInfos.size() == 0)
{
if(previousRevision != null) {
revisionInfos.add(new RevisionInfo(startDate, sortedRevisions.get(revision).minusDays(1), previousRevision));
nextRevisionStartDate = sortedRevisions.get(revision);
}
}
else
{
revisionInfos.add(new RevisionInfo(nextRevisionStartDate, sortedRevisions.get(revision).minusDays(1), previousRevision));
nextRevisionStartDate = sortedRevisions.get(revision);
}
}
previousRevision = revision;
}
revisionInfos.add(new RevisionInfo(nextRevisionStartDate, endDate, previousRevision));
for (RevisionInfo revisionInfo : revisionInfos){
System.out.println("Start Date :: "+ revisionInfo.getStartDate()+ ":: End date ::"+ revisionInfo.getEndDate()+": Revision:"+ revisionInfo.getRevision());
}
}
失败案例
提供的输入日期为
Start_date End_date
2014-09-23 2014-09-23
生成的输出
Start_date End_date Revision
2014-09-23 2014-09-22 110
2014-09-23 2014-09-23 110
预期输出为
Start_date End_date Revision
2014-09-23 2014-09-23 110
最佳答案
而不是
if(sortedRevisions.get(revision).isEqual(startDate) || sortedRevisions.get(revision).isAfter(startDate) ){
你的条件应该只是:
if(sortedRevisions.get(revision).isAfter(startDate) ){
说明:
在每一轮中,您都会查看当前版本,并决定是否将上一个版本添加到列表中。
如果当前修订的日期大于开始日期,则意味着先前的修订在实际开始日期仍然“有效”。例如,如果开始日期为 2014-10-05
,并且当前修订版于 2014-10-10
开始,则表示从 2014-10-05
开始到 2014-10-09
之前的修订版仍然“有效”。
但是,如果当前修订版从实际开始日期开始(相等),则意味着之前的版本在该日期未生效。目前的修订已于开始日期生效。由于此时您正在决定是否添加先前修订版,因此您拒绝了它。而当前的修订,很好,将在下一轮处理。
关于java - 根据修订日期映射映射开始日期和结束日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26895725/
为包含未推送变更集的 -r 选项指定修订/修订集的最佳方法是什么,这对于在本地克隆或在仅包含已推送变更集的存储库中创建书签很有用。 当您需要在工作中切换到其他您还没有准备好插入的事情时,通常需要这样做
我正在寻找一个合适的过程来保留数据库中行(及其关系)的修订或快照。 以电子商务平台为例- 客户创建订单。该订单与账单地址和送货地址相关联。 该客户随后更改了个人资料中地址簿中的地址。 原始订单的地址不
我喜欢 DocumentViewer 在 WPF 应用程序中显示 XPS 文档。但我还需要编辑 XPS 文档。我找到了用于编辑 XPS 的独立应用程序 (.exe)。我需要的是一个用于查看和编辑 XP
所以我目前正在分析我的 Spring Java 项目。我想做的一件事是计算文件/类已更改的次数。在 Eclipse 中,我可以右键单击一个类,选择 Team --> Show History,它会显示
目前我可以从没有纹理的 DAE 文件加载地球模型,只是为了显示屏幕上有东西。为此,我使用了 GLU。 但现在我正在尝试使用我们的GLM 和着色器 来加载带有纹理的模型。我遇到的问题是正确地让它们一起工
如何检查特定 Safari 二进制文件中使用了 webkit 的哪个修订版(svn 修订版)?例如,我想知道 Mac 上最新的 Safari(雪豹 10.6.7)使用的是哪个版本。 用户代理不提供此信
修订数据的存储方式每个受修订影响的对象在 _AUD 中都有一个单独的记录。 table 。因此,当我搜索影响对象的修订时 A ,我会找回修订版为3的条目用于对象 B , 但如果对象 A和/或 C修订版
在 git 中,您可以通过类似 master^^ 的方式引用修订版。 , 意思是 master 之前的两次修订。你能以某种方式(或通过某种扩展)在 Mercurial 中做同样的事情吗?例如,如果我想
我正在尝试使用 Python 2.7 对维基百科文章的内容如何随时间变化进行分析。我只对页面的内容感兴趣,发现最简单的方法是使用 Wikipedia package .我的代码成功加载了一篇文章,然后
我在 Alembic 中有一个依赖于特定后端的修订版,但语义并不明确依赖于它(只会让事情变得更快)。 我希望我的代码不依赖于特定的后端(即修改在运行时不会给出错误)。我应该在 def upgrade(
我有一个 Xcode 项目的本地 git 存储库。如何(从终端)将项目的特定修订 checkout 到不同的文件夹? 谢谢。 最佳答案 您可以将本地存储库克隆到另一个文件夹中: clone a spe
据我所知,git 通过保存更改的行来存储修订。运行文本文档,如文档或冗长的 LaTeX 文件,通常有很长的行或在 80 个字符后被强制中断。当一个词被更改时,它会导致更改行的巨大差异,从而使 git
我目前在我公司的官僚主义 hell 中,需要定义什么构成了我们测试程序的不同级别的软件更改。我们有一个我们内部遵循的粗略实践,但我正在寻找一个标准(如果存在)以在我们的质量体系中引用。我认识到开发人员
我已经开始使用 Hibernate Envers 来审计日志记录业务对象。我已经阅读了文档,并且从我看到的所有示例中,查询是通过修订号完成的。 我想按修订日期查询,即获取被审计实体在特定日期或日期范围
我正在构建一个网站,用户可以在其中更改其公开显示的个人资料。但是,我需要所有更改在上线之前都得到管理员的批准。在更改获得批准之前,他们的旧个人资料将显示。在管理员中应该有一个等待批准的配置文件列表。最
我正在构建一个网站,用户可以在其中更改其公开显示的个人资料。但是,我需要所有更改在上线之前都得到管理员的批准。在更改获得批准之前,他们的旧个人资料将显示。在管理员中应该有一个等待批准的配置文件列表。最
我编辑了这个问题,因为下面提到的答案是在使用 while 和 begin 时,它应该在存储过程中。 所以现在我在存储过程中运行它,但我仍然遇到错误。 counter; while counter <
我刚开始使用 Hibernate Envers 进行审计,我想知道是否有办法在两个日期之间获取一个类的所有修订。 到目前为止我一直在使用: AuditQuery query = reader.crea
我认为前缀++ 和后缀++ 之间的唯一区别是它们的优先级。显然我错了。也许重要的是返回值? 最佳答案 在 C++ 中,++++i 可以编译,因为前缀 operator++ 返回一个左值。但是,仍然不建
在 Jenkins 中,我使用 XML API 来获取提交的 SHA,例如 http://jenkins/view/job/test/470/api/xml?xpath=//lastBuiltRevi
我是一名优秀的程序员,十分优秀!