From 6eb7c68a18208206d01b28a1044506df66aee4b3 Mon Sep 17 00:00:00 2001 From: ArgonarioD Date: Sun, 3 Jul 2022 19:59:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=86TimeUtils=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../projectmanagement/entity/Project.java | 1 + .../projectmanagement/utils/TimeUtils.java | 38 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/TimeUtils.java diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java index 5f3be2f..7265f8b 100644 --- a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/entity/Project.java @@ -18,6 +18,7 @@ public class Project { @TableId(type = IdType.AUTO) private Integer projectId; private String projectName; + //TODO: 时间线顺序判断 private LocalDate projectStartTime; private LocalDate projectOnlineTime; private LocalDate projectFirstTestTime; diff --git a/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/TimeUtils.java b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/TimeUtils.java new file mode 100644 index 0000000..5cefa29 --- /dev/null +++ b/src/main/java/cn/edu/hfut/rmdjzz/projectmanagement/utils/TimeUtils.java @@ -0,0 +1,38 @@ +package cn.edu.hfut.rmdjzz.projectmanagement.utils; + +import java.time.Instant; +import java.time.temporal.TemporalAccessor; + +/** + * @author 佘语殊 + * @since 2022/7/2 9:13 + */ +public class TimeUtils { + /** + * 验证参数是否按时间线先后顺序传入,忽略null + */ + public static boolean validateTimeLine(TemporalAccessor... temporalAccessors) { + int first; + for (first = 0; first < temporalAccessors.length; first++) { + if (temporalAccessors[first] != null) { + break; + } + } + if (first >= temporalAccessors.length - 1) { + return true; + } + Instant last = Instant.from(temporalAccessors[first]); + Instant current; + for (int i = first + 1; i < temporalAccessors.length; i++) { + if (temporalAccessors[i] == null) { + continue; + } + current = Instant.from(temporalAccessors[i]); + if (last.isAfter(current)) { + return false; + } + last = current; + } + return true; + } +}