您如何比较Java中的星期几和时间

您如何比较Java中的星期几和时间,java,sorting,datetime,Java,Sorting,Datetime,在爪哇,你如何比较星期五下午2:00和星期四下午4:00 输入阵列: 星期五下午2:00 星期四凌晨2:00 星期六下午4:00 输出: 星期四凌晨2:00 星期五下午2:00 周六下午4:00我的解决方案是建立一个代表时代的小类。我们可以称之为周时间或周安全事件或任何适合您的领域,请尝试明智地选择。该类将有两个实例字段,一个是DayOfWeek,一个是DayOfWeek,一个是LocalTime。DayOfWeek和LocalTime是java中的。时间在Java8中引入,并向后移植到Java

在爪哇,你如何比较星期五下午2:00和星期四下午4:00

输入阵列: 星期五下午2:00 星期四凌晨2:00 星期六下午4:00

输出: 星期四凌晨2:00 星期五下午2:00
周六下午4:00

我的解决方案是建立一个代表时代的小类。我们可以称之为周时间或周安全事件或任何适合您的领域,请尝试明智地选择。该类将有两个实例字段,一个是DayOfWeek,一个是DayOfWeek,一个是LocalTime。DayOfWeek和LocalTime是java中的。时间在Java8中引入,并向后移植到Java6和Java7。我的类将有一个接受字符串参数(如Friday 2:00 PM)的构造函数,并将其解析为两个实例字段。我相信这两个都可以使用相同的DateTimeFormatter,所以这可以是一个类常量私有静态final字段。DayOfWeek没有解析方法,因此需要DayOfWeek.fromyourDateTimeFormatter.parseyourString之类的内容

您的类应该实现Comparable,这样您就可以按对象的自然顺序对其进行排序。在你的比较方法中,首先比较一周中的哪一天,如果当天相同,则比较时间。DayOfWeekare从周一到周日自然排序;如果你的一周从星期一以外的另一天开始,你需要特别处理它

您的类也可以有一个时区的ZoneId字段,但是假设您的所有时间都在同一时区,可能没有理由

快乐编码

你也可以看看你是否能找到一个适合你需求的类;使用你的搜索引擎。我不知道,但你永远也说不出来

java.time中的类通常非常适合于关于日期和时间的有趣需求。很明显,你可以有一个没有时间的约会,也可以有一个没有日期的时间。你可以有一年中没有一年的一天来纪念你的周年纪念日,如前所述,一周中没有一周的一天,等等。不幸的是,没有一门课能完全满足你对一周中的某一天和某一时间的要求,这就是为什么我建议把它从现有的两门课中组合起来


编辑:从您的堆栈溢出配置文件来看,您可能是一名Android程序员?如果您想在Android上使用java.time类,获取并使用JSR-310中首先描述的类,那么JSR-310和Android Backport的ABP分别是三个十。

为什么将周四放在周五之前?如果他们在不同的星期怎么办?这个链接应该可以帮助您解决这个问题:将字符串解析为Calendar对象或LocalDateTime对象,然后使用.compareTo…从开始。这是我的建议。请注意,LocalDateTime实例是可比较的。@Lashane-输入数据始终仅为1周,因此需要按这种方式排序。