当前位置: 首页 > 面试题库 >

在3个日期中查找最早的日期

郭永安
2023-03-14
问题内容

我在Java中有三个约会:a,b,c。这些日期中的任何一个或所有日期都可以为空。在没有大量if-
else块的情况下确定a,b,c中最早日期的最有效方法是什么?


问题答案:

无法避免空值检查,但是通过一些重构,您可以使其变得更轻松。

创建一个安全地比较两个日期的方法:

/**
 * Safely compare two dates, null being considered "greater" than a Date
 * @return the earliest of the two
 */
public static Date least(Date a, Date b) {
    return a == null ? b : (b == null ? a : (a.before(b) ? a : b));
}

然后结合调用:

Date earliest = least(least(a, b), c);

实际上,您可以将此方法用作任何通用方法Comparable

public static <T extends Comparable<T>> T least(T a, T b) {
    return a == null ? b : (b == null ? a : (a.compareTo(b) < 0 ? a : b));
}


 类似资料:
  • 假设我有一个像下面这样的数据,有名称、类和日期 我正在寻找一个输出,这将给我的每个名字的值计数,他们各自的等级和最早的日期和最新的日期。我的输出是, 我能够找到每个名字的计数, 但无法在“日期”列中找到“最早日期”和“最晚日期”。 有人能帮我吗?

  • 问题内容: 如果我有一个表列,,, 并且我想运行一个sql查询以获取数据集中最早的记录。 您可以在查询中执行此操作,还是需要在事实之后循环? 我想获取该记录的所有字段。 问题答案: 如果您只想要日期: 如果您需要所有信息: 尽可能避免循环。循环通常会导致游标,游标几乎从来没有必要,而且常常效率很低。

  • 本文向大家介绍MySQL查询以查找表中的最新3个日期,且结果日期不应重复,包括了MySQL查询以查找表中的最新3个日期,且结果日期不应重复的使用技巧和注意事项,需要的朋友参考一下 要查找最新日期,请使用ORDER BY DESC订购日期记录。由于我们只需要3个日期,因此请使用LIMIT 3。 让我们首先创建一个表- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产

  • 由于我意识到不能比较字符串格式的($gt、$gte、$lt、$lte等)日期,所以我尝试学习如何使用UTCDateTime。我无法在带有mongoDb\bson\utcdateTime的集合中找到日期 我在试着用这个代码。 据我所知,我也可以找到带有时间戳的日期,但我正在寻找带有UTCDateTime字段的搜索。

  • 问题内容: 我有一个问题,我需要从按列 分组 但又 按顺序分组 的表中获取最早的日期值。 这是一个示例表: 该查询将返回3行,并带有最小值。 我正在寻找的是该组是连续的并返回多个JobCodeID,如下所示: 没有游标,这可能吗? 问题答案: SELECT JobCodeId, MIN(LastEffectiveDate) AS mindate FROM ( SELECT , prn - rn A

  • 问题内容: 我有一个数据库,如下所示; 我想做的是产生一个结果,该结果具有该日期最早()的每个客户的KWH读数,该日期将由用户以Web形式选择。 结果将/应该类似于; 这里显示的行数超过了每天,并且有更多的客户,并且客户数量会定期更改。 我在SQL方面没有太多经验,我研究过子查询等,但是我没有内容来弄清楚如何按最早阅读每个客户的方式来安排它,然后仅输出该列。 它在Redhat / CentOS上的