gpt4 book ai didi

java - 如何比较实例化的 DateTime 对象?

转载 作者:行者123 更新时间:2023-12-02 10:36:05 25 4
gpt4 key购买 nike

我正在编写一个程序来按日期对日期时间进行排序。有一个日期时间开始和一个日期时间结束。它们根据用户输入放入自己的对象中。DateTime 开始和 DateTime 结束组成自己的术语。因此,每个术语都有一个自己的对象,其中包含日期时间开始和日期时间结束。

我想要做的是将所有 DateTime 开头和所有 DateTime 结尾按日期排序。我怎样才能做到这一点?我正在考虑一个比较器,但我似乎无法在自定义对象上执行此操作。

假设用户输入一个开始日期 01/01/2000 和一个结束日期 01/01/2002。这组成了一个术语。然后,用户输入由开始日期 01/01/2001结束日期 01/01/2003 组成的第二个术语。

我现在想做的是对日期进行排序并创建三个新术语:

beginning 01/01/2000 end 01/01/2001

beginning 01/01/2001 end 01/01/2002

beginning 01/01/2002 end 01/01/2003

我不知道如何继续下去,有什么想法吗?

最佳答案

将每个日期放入一个新集合中,按日期对其进行排序,然后创建包含集合中相邻日期的新对象。

尝试:

public static void main(String[] args) {
List<YourClass> list = new ArrayList<>();

list.add(new YourClass(new Date(100000000), new Date(200000000)));
list.add(new YourClass(new Date(150000000), new Date(250000000)));
list.add(new YourClass(new Date(50000000), new Date(300000000)));

System.out.println(list);

List<Date> dates = new ArrayList<>();
for (YourClass yc : list){
if (!dates.contains(yc.beginning)) dates.add(yc.beginning);
if (!dates.contains(yc.end)) dates.add(yc.end);
}

Collections.sort(dates);

List<YourClass> list2 = new ArrayList<>();

for (int i=0; i < dates.size() -1; i++){
list2.add(new YourClass(dates.get(i), dates.get(i+1)));
}

System.out.println(list2);

}

public static class YourClass {
Date beginning;
Date end;

public YourClass(Date beginning, Date end) {
this.beginning = beginning;
this.end = end;
}

@Override
public String toString() {
return "\n" + beginning + " -> " + end ;
}
}

关于java - 如何比较实例化的 DateTime 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53284130/

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