gpt4 book ai didi

java - 返回一个考虑日期和数字的值

转载 作者:行者123 更新时间:2023-12-02 07:10:06 28 4
gpt4 key购买 nike

我有 3 个日期和 3 个数字

Date date1 = "2013-01-23";
Date date2 = "2013-03-24";
Date date3 = "2012-12-20";

number1 = 10;
number2 = 0;
number3 = 3;

第 1 步:我必须检查我拥有的三个日期中的最新日期,并选择与该日期对应的数字。

第2步:如果该日期对应的数字为0,我需要三个日期中的下一个最高值

注意:日期可以为null

如果所有日期都不为空,我的代码就可以工作。当其中一个日期为 null

时,我对处理这种情况感到困惑
if(date1 != null && date3 != null) {
if(date1.compareTo(date3) > 0 && number1 > 0) {
dateCompare = date1;
object.set(number1);
} else if(date3.compareTo(date1) > 0 && number3 > 0) {
dateCompare = date3;
object.set(number3);
}
}

if(date2 != null) {
if(dateCompare != null) {
if(date2.compareTo(dateCompare) > 0 && number2 > 0 ) {
object.set(number2);
dateCompare = date2;
}
}
}

更新

示例如果其中一个日期为 null如果 date1 = nulldate2 > date3number2 = 0number3 = 1。然后我想将值设置为 number3

有人可以建议我一种方法来处理我正在寻找的东西吗?

最佳答案

如何处理 null 完全取决于您。

此示例使用 TreeMapDate 对键/值对进行排序,然后按降序循环,直到找到非零值。

此实现会删除 null 值,因为它们无法进行有意义的排序。从OP的示例来看,这似乎是处理null的正确方法。唯一剩下的问题是,如果一切都是 null 该怎么办。

private static final DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");

public static void main(String[] args) {
final TreeMap<Date, Integer> map = new TreeMap<Date, Integer>() {
@Override
public Integer put(Date key, Integer value) {
if (key != null) {
return super.put(key, value);
}
return null;
}
};
map.put(parseDate("2013-01-23"), 10);
map.put(parseDate("2013-03-24"), 0);
map.put(parseDate("2012-12-20"), 3);
for (final Entry<Date, Integer> entry : map.descendingMap().entrySet()) {
if (entry.getValue() > 0) {
System.out.println(entry + " has nonzero value");
break;
}
System.out.println(entry + " has zero value. Continue looking.");
}
}

public static Date parseDate(final String date) {
if (date == null) {
return null;
}
try {
return dateFormat.parse(date);
} catch (ParseException ex) {
ex.printStackTrace(System.out);
return null;
}
}

输出:

Sun Mar 24 00:00:00 GMT 2013=0 has zero value. Continue looking.
Wed Jan 23 00:00:00 GMT 2013=10 has nonzero value

我当然建议使用 TreeMap 而不是您的自定义代码,这对于代码的其他读者来说更清晰。为什么要重新发明轮子?

关于java - 返回一个考虑日期和数字的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15625909/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com