From 23a46b4be35277e06ec89f48730eeb694e686be8 Mon Sep 17 00:00:00 2001
From: Kenmegne <stephanie.kenmegne@gmail.com>
Date: Thu, 18 Jun 2026 15:40:06 +0000
Subject: [PATCH] add fdx-commons and fdx-consultation
---
fdx-commons/fdxcommons-tools/src/main/java/com/megatim/fdxcommons/tools/database/queries/metadata/CriteriaLocalDateTimeValue.java | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 49 insertions(+), 0 deletions(-)
diff --git a/fdx-commons/fdxcommons-tools/src/main/java/com/megatim/fdxcommons/tools/database/queries/metadata/CriteriaLocalDateTimeValue.java b/fdx-commons/fdxcommons-tools/src/main/java/com/megatim/fdxcommons/tools/database/queries/metadata/CriteriaLocalDateTimeValue.java
new file mode 100644
index 0000000..a1dc67f
--- /dev/null
+++ b/fdx-commons/fdxcommons-tools/src/main/java/com/megatim/fdxcommons/tools/database/queries/metadata/CriteriaLocalDateTimeValue.java
@@ -0,0 +1,49 @@
+package com.megatim.fdxcommons.tools.database.queries.metadata;
+
+import com.megatim.fdxcommons.tools.database.exceptions.LocalDateTimeValueParseError;
+import java.time.LocalDate;
+import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.time.YearMonth;
+import java.time.format.DateTimeFormatter;
+import java.time.format.DateTimeParseException;
+
+/**
+ *
+ * @author Gabuntu
+ */
+public class CriteriaLocalDateTimeValue {
+
+ private final String format;
+ private final Object value;
+
+ public CriteriaLocalDateTimeValue(String format, Object value) {
+ this.format = format;
+ this.value = value;
+ }
+
+ public LocalDateTime value() throws LocalDateTimeValueParseError {
+ final String stringValue = value.toString();
+
+ try {
+ if ((format.length() == 8 || format.length() == 10) && format.contains("yyyy") && format.contains("MM") && format.contains("dd")) {
+
+ LocalDate localDate = LocalDate.parse(stringValue, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
+ return localDate.atTime(LocalTime.MIN);
+
+ } else if ((format.length() == 6 || format.length() == 8) && format.contains("yyyy") && format.contains("MM")) {
+ YearMonth yearMonth = YearMonth.parse(stringValue, DateTimeFormatter.ofPattern("yyyy-MM"));
+ return LocalDateTime.from(yearMonth.atDay(1));
+
+ } else if (format.length() == 4 && format.equals("yyyy")) {
+ return LocalDateTime.of(Integer.parseInt(stringValue), 1, 1, 0, 0, 0, 0);
+ }
+
+ } catch (DateTimeParseException e) {
+ throw new LocalDateTimeValueParseError("Impossible de parser la valeur " + value + " au format " + format);
+ }
+
+ throw new LocalDateTimeValueParseError("Impossible de parser la valeur " + value + " au format " + format);
+ }
+
+}
--
Gitblit v1.10.0