From 934d354711babe0c32a704ee458a996394acc62f Mon Sep 17 00:00:00 2001 From: tomas-sexenian Date: Thu, 2 Mar 2023 12:39:18 -0300 Subject: [PATCH 1/4] hasLongYear was giving wrong result Issue:101533 --- common/src/main/java/com/genexus/LocalUtil.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/common/src/main/java/com/genexus/LocalUtil.java b/common/src/main/java/com/genexus/LocalUtil.java index f14717784..5de0124f8 100644 --- a/common/src/main/java/com/genexus/LocalUtil.java +++ b/common/src/main/java/com/genexus/LocalUtil.java @@ -1030,6 +1030,17 @@ private static boolean hasLongYear(String date) if (!getBLANK_EMPTY_DATE() && date.indexOf(" ") != -1) return true; + String separator = ""; + if (date.contains("/")) + separator = "/" ; + else + separator = "-"; + String[] parts = date.split(separator); + for (String part : parts) { + if (part.length() == 4 && part.matches("\\d{4}")) + return true; + } + return date.length() == 10 || date.length() == 19; } From 43f44ae7ca1bc0fe97d21caea54642d12d090448 Mon Sep 17 00:00:00 2001 From: tomas-sexenian Date: Fri, 3 Mar 2023 09:14:00 -0300 Subject: [PATCH 2/4] Revert "hasLongYear was giving wrong result" This reverts commit 934d354711babe0c32a704ee458a996394acc62f. --- common/src/main/java/com/genexus/LocalUtil.java | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/common/src/main/java/com/genexus/LocalUtil.java b/common/src/main/java/com/genexus/LocalUtil.java index 5de0124f8..f14717784 100644 --- a/common/src/main/java/com/genexus/LocalUtil.java +++ b/common/src/main/java/com/genexus/LocalUtil.java @@ -1030,17 +1030,6 @@ private static boolean hasLongYear(String date) if (!getBLANK_EMPTY_DATE() && date.indexOf(" ") != -1) return true; - String separator = ""; - if (date.contains("/")) - separator = "/" ; - else - separator = "-"; - String[] parts = date.split(separator); - for (String part : parts) { - if (part.length() == 4 && part.matches("\\d{4}")) - return true; - } - return date.length() == 10 || date.length() == 19; } From 0e1fe39f05766f18e042a2d576912d160f096469 Mon Sep 17 00:00:00 2001 From: tomas-sexenian Date: Fri, 3 Mar 2023 09:20:53 -0300 Subject: [PATCH 3/4] If date's length is 23 then it's full year --- common/src/main/java/com/genexus/LocalUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common/src/main/java/com/genexus/LocalUtil.java b/common/src/main/java/com/genexus/LocalUtil.java index f14717784..cf7a1cf54 100644 --- a/common/src/main/java/com/genexus/LocalUtil.java +++ b/common/src/main/java/com/genexus/LocalUtil.java @@ -1030,7 +1030,7 @@ private static boolean hasLongYear(String date) if (!getBLANK_EMPTY_DATE() && date.indexOf(" ") != -1) return true; - return date.length() == 10 || date.length() == 19; + return date.length() == 10 || date.length() == 19 || date.length() == 23; } public Date ctotex(String date, int format) From 399be999e81a9e2c0dbd530ad9b4ace1d6a1caf1 Mon Sep 17 00:00:00 2001 From: tomas-sexenian Date: Mon, 6 Mar 2023 11:41:20 -0300 Subject: [PATCH 4/4] ctotex tests --- .../com/genexus/util/TestDateMethods.java | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/java/src/test/java/com/genexus/util/TestDateMethods.java b/java/src/test/java/com/genexus/util/TestDateMethods.java index 76afdcb5e..978154958 100644 --- a/java/src/test/java/com/genexus/util/TestDateMethods.java +++ b/java/src/test/java/com/genexus/util/TestDateMethods.java @@ -42,4 +42,50 @@ public void testYearLimit(){ calendar.setTime(testDate2); Assert.assertTrue(calendar.get(Calendar.YEAR) == 1976); } + + @Test + public void testCtotex(){ + Connect.init(); + + LocalUtil localUtil = new LocalUtil('.', "MDY", "24", 30, "eng"); + Date testDate1 = CommonUtil.nullDate(); + Date testDate2 = CommonUtil.nullDate(); + Date testDate3 = CommonUtil.nullDate(); + try + { + testDate1 = localUtil.ctotex("1930-01-01T00:00", 0); + testDate2 = localUtil.ctotex("2023-01-01T00:00:00", 0); + testDate3 = localUtil.ctotex("2200-12-31T00:00:00.000", 0); + } + catch (Exception e) + { } + + Calendar calendar = GregorianCalendar.getInstance(); + calendar.setTime(testDate1); + Assert.assertTrue(calendar.get(Calendar.YEAR) == 1930); + calendar.setTime(testDate2); + Assert.assertTrue(calendar.get(Calendar.YEAR) == 2023); + calendar.setTime(testDate3); + Assert.assertTrue(calendar.get(Calendar.YEAR) == 2200); + + testDate1 = CommonUtil.nullDate(); + testDate2 = CommonUtil.nullDate(); + testDate3 = CommonUtil.nullDate(); + try + { + testDate1 = localUtil.ctotex("29-01-01", 0); + testDate2 = localUtil.ctotex("30-01-01T00", 0); + testDate3 = localUtil.ctotex("31-12-31T00:00", 0); + } + catch (Exception e) + { } + + calendar = GregorianCalendar.getInstance(); + calendar.setTime(testDate1); + Assert.assertTrue(calendar.get(Calendar.YEAR) == 2029); + calendar.setTime(testDate2); + Assert.assertTrue(calendar.get(Calendar.YEAR) == 1930); + calendar.setTime(testDate3); + Assert.assertTrue(calendar.get(Calendar.YEAR) == 1931); + } } \ No newline at end of file