From 64cfd63a43af112fc15b325410d68a0775b53b1a Mon Sep 17 00:00:00 2001 From: Alex Pang Date: Tue, 27 Oct 2020 00:04:33 -0400 Subject: [PATCH 1/2] Fix Issue #308 --- .../DescriptionStrategyFactory.java | 10 +++- src/main/resources/CronUtilsI18N.properties | 1 + .../resources/CronUtilsI18N_de.properties | 2 +- .../resources/CronUtilsI18N_el.properties | 1 + .../resources/CronUtilsI18N_en.properties | 49 ++++++++++--------- .../resources/CronUtilsI18N_es.properties | 1 + .../resources/CronUtilsI18N_fr.properties | 1 + .../resources/CronUtilsI18N_id.properties | 1 + .../resources/CronUtilsI18N_it.properties | 3 +- .../resources/CronUtilsI18N_ko.properties | 1 + .../resources/CronUtilsI18N_nl.properties | 2 +- .../resources/CronUtilsI18N_pl.properties | 3 +- .../resources/CronUtilsI18N_pt.properties | 1 + .../resources/CronUtilsI18N_ru.properties | 1 + .../resources/CronUtilsI18N_sw.properties | 1 + .../resources/CronUtilsI18N_tr.properties | 1 + .../resources/CronUtilsI18N_zh.properties | 1 + .../java/com/cronutils/model/CronTest.java | 12 ----- .../utils/descriptor/TestDescriptor.java | 20 ++++++++ 19 files changed, 71 insertions(+), 41 deletions(-) diff --git a/src/main/java/com/cronutils/descriptor/DescriptionStrategyFactory.java b/src/main/java/com/cronutils/descriptor/DescriptionStrategyFactory.java index fc010107..1d89fdbf 100755 --- a/src/main/java/com/cronutils/descriptor/DescriptionStrategyFactory.java +++ b/src/main/java/com/cronutils/descriptor/DescriptionStrategyFactory.java @@ -83,7 +83,15 @@ public static DescriptionStrategy daysOfMonthInstance(final ResourceBundle bundl return String .format("%s %s %s ", bundle.getString("the_nearest_weekday_to_the"), on.getTime().getValue(), bundle.getString("of_the_month")); case L: - return bundle.getString("last_day_of_month"); + Integer daysBefore = on.getNth().getValue(); + if (daysBefore > 0) { + String daysRep = + daysBefore == 1 ? bundle.getString("day") : bundle.getString("days"); + return String.format("%d %s %s", daysBefore, daysRep, + bundle.getString("before_last_day_of_month")); + } else { + return bundle.getString("last_day_of_month"); + } case LW: return bundle.getString("last_weekday_of_month"); default: diff --git a/src/main/resources/CronUtilsI18N.properties b/src/main/resources/CronUtilsI18N.properties index fe341d96..5d00dbf1 100644 --- a/src/main/resources/CronUtilsI18N.properties +++ b/src/main/resources/CronUtilsI18N.properties @@ -21,6 +21,7 @@ last=last the_nearest_weekday_to_the=the nearest weekday to the last_day_of_month=last day of month last_weekday_of_month=last weekday of month +before_last_day_of_month=before the last day of the month pattern_every_seconds = {0} {1} every_one=every diff --git a/src/main/resources/CronUtilsI18N_de.properties b/src/main/resources/CronUtilsI18N_de.properties index af5241e2..d356572a 100644 --- a/src/main/resources/CronUtilsI18N_de.properties +++ b/src/main/resources/CronUtilsI18N_de.properties @@ -21,7 +21,7 @@ last=letzten the_nearest_weekday_to_the=am n\ufffdchsten Werktag nach dem last_day_of_month=letzten Tag des Monats last_weekday_of_month=letzten Werktag des Monats - +before_last_day_of_month=vor dem letzten Tag des Monats pattern_every_seconds = {0} {1} every_one=jede diff --git a/src/main/resources/CronUtilsI18N_el.properties b/src/main/resources/CronUtilsI18N_el.properties index 09ab4dd9..f3db06b5 100644 --- a/src/main/resources/CronUtilsI18N_el.properties +++ b/src/main/resources/CronUtilsI18N_el.properties @@ -21,3 +21,4 @@ last=\u03C4\u03B5\u03BB\u03B1\u03C5\u03C4\u03B1\u03AF\u03BF the_nearest_weekday_to_the=\u03B7 \u03BA\u03BF\u03BD\u03C4\u03B9\u03BD\u03CC\u03C4\u03B5\u03C1\u03B7 \u03B5\u03C1\u03B3\u03AC\u03C3\u03B9\u03BC\u03B7 \u03C3\u03C4\u03BF last_day_of_month=\u03C4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u03BC\u03AD\u03C1\u03B1 \u03C4\u03BF\u03C5 \u03BC\u03AE\u03BD\u03B1 last_weekday_of_month=\u03C4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u03B5\u03C1\u03B3\u03AC\u03C3\u03B9\u03BC\u03B7 \u03C4\u03BF\u03C5 \u03BC\u03AE\u03BD\u03B1 +before_last_day_of_month=\u03C0\u03C1\u03B9\u03BD \u03B1\u03C0\u03CC \u03C4\u03B7\u03BD \u03C4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u03B7\u03BC\u03AD\u03C1\u03B1 \u03C4\u03BF\u03C5 \u03BC\u03AE\u03BD\u03B1 \ No newline at end of file diff --git a/src/main/resources/CronUtilsI18N_en.properties b/src/main/resources/CronUtilsI18N_en.properties index 99ca29c9..66afe5d8 100644 --- a/src/main/resources/CronUtilsI18N_en.properties +++ b/src/main/resources/CronUtilsI18N_en.properties @@ -1,24 +1,25 @@ -between_x_and_y=between {0} and {1} -every=every -and=and -at=at -day=day -days=days -hour=hour -hours=hours -minute=minute -minutes=minutes -second=second -seconds=seconds -month=month -months=months -year=year -years=years -between=between -of_every_month=of every month -of_every_hour=of every hour -of_the_month=of the month -last=last -the_nearest_weekday_to_the=the nearest weekday to the -last_day_of_month=last day of month -last_weekday_of_month=last weekday of month \ No newline at end of file +between_x_and_y=between {0} and {1} +every=every +and=and +at=at +day=day +days=days +hour=hour +hours=hours +minute=minute +minutes=minutes +second=second +seconds=seconds +month=month +months=months +year=year +years=years +between=between +of_every_month=of every month +of_every_hour=of every hour +of_the_month=of the month +last=last +the_nearest_weekday_to_the=the nearest weekday to the +last_day_of_month=last day of month +last_weekday_of_month=last weekday of month +before_last_day_of_month=before the last day of the month \ No newline at end of file diff --git a/src/main/resources/CronUtilsI18N_es.properties b/src/main/resources/CronUtilsI18N_es.properties index 75a65be8..1b47fc9f 100644 --- a/src/main/resources/CronUtilsI18N_es.properties +++ b/src/main/resources/CronUtilsI18N_es.properties @@ -21,3 +21,4 @@ last=ultimo the_nearest_weekday_to_the=dia de semana mas cercano a last_day_of_month=ultimo dia del mes last_weekday_of_month=ultimo dia de semana del mes +before_last_day_of_month=antes del \u00FAltimo d\u00EDa del mes \ No newline at end of file diff --git a/src/main/resources/CronUtilsI18N_fr.properties b/src/main/resources/CronUtilsI18N_fr.properties index 0e11cdce..755c7e0c 100644 --- a/src/main/resources/CronUtilsI18N_fr.properties +++ b/src/main/resources/CronUtilsI18N_fr.properties @@ -21,3 +21,4 @@ days=jours months=les mois years=les ann\u00e9es last_weekday_of_month=derni\u00e8re semaine du mois +before_last_day_of_month=avant le dernier jour du mois \ No newline at end of file diff --git a/src/main/resources/CronUtilsI18N_id.properties b/src/main/resources/CronUtilsI18N_id.properties index ab6063a0..5a8d24c8 100644 --- a/src/main/resources/CronUtilsI18N_id.properties +++ b/src/main/resources/CronUtilsI18N_id.properties @@ -21,3 +21,4 @@ last=terakhir the_nearest_weekday_to_the=hari kerja terdekat ke last_day_of_month=hari terakhir di bulan last_weekday_of_month=hari kerja terakhir di bulan +before_last_day_of_month=sebelum hari terakhir setiap bulan diff --git a/src/main/resources/CronUtilsI18N_it.properties b/src/main/resources/CronUtilsI18N_it.properties index afdc9c10..70a63431 100644 --- a/src/main/resources/CronUtilsI18N_it.properties +++ b/src/main/resources/CronUtilsI18N_it.properties @@ -20,4 +20,5 @@ of_the_month=del mese last=ultimo the_nearest_weekday_to_the=il giorno della settimana più vicino a last_day_of_month=ultimo giorno del mese -last_weekday_of_month=ultimo giorno della settimana nel mese \ No newline at end of file +last_weekday_of_month=ultimo giorno della settimana nel mese +before_last_day_of_month=prima dell'ultimo giorno del mese \ No newline at end of file diff --git a/src/main/resources/CronUtilsI18N_ko.properties b/src/main/resources/CronUtilsI18N_ko.properties index 779fd10e..a73b55d7 100644 --- a/src/main/resources/CronUtilsI18N_ko.properties +++ b/src/main/resources/CronUtilsI18N_ko.properties @@ -21,3 +21,4 @@ last=\uB9C8\uC9C0\uB9C9 the_nearest_weekday_to_the=\uAC00\uC7A5 \uAC00\uAE4C\uC6B4 \uD3C9\uC77C last_day_of_month=\uB9D0\uC77C last_weekday_of_month=\uB9C8\uC9C0\uB9C9 \uC8FC +before_last_day_of_month=\uB9E4\uC6D4 \uB9D0\uC77C \uC774\uC804 \ No newline at end of file diff --git a/src/main/resources/CronUtilsI18N_nl.properties b/src/main/resources/CronUtilsI18N_nl.properties index 44644fd9..a23146fc 100644 --- a/src/main/resources/CronUtilsI18N_nl.properties +++ b/src/main/resources/CronUtilsI18N_nl.properties @@ -21,7 +21,7 @@ last=laatste the_nearest_weekday_to_the=de dichtsbijzijnde weekdag voor de last_day_of_month=laaste dag van maand last_weekday_of_month=laatste weekdag van maand - +before_last_day_of_month=v\u00F3\u00F3r de laatste dag van de maand pattern_every_seconds = {0} {1} every_one=elke diff --git a/src/main/resources/CronUtilsI18N_pl.properties b/src/main/resources/CronUtilsI18N_pl.properties index 88036d41..15d0010a 100644 --- a/src/main/resources/CronUtilsI18N_pl.properties +++ b/src/main/resources/CronUtilsI18N_pl.properties @@ -20,4 +20,5 @@ of_the_month=miesi\u0105ca last=ostatni the_nearest_weekday_to_the=najbli\u017Cszy weekend last_day_of_month=ostatni dzie\u0144 miesi\u0105ca -last_weekday_of_month=ostatni dzie\u0144 tygodnia w miesi\u0105cu +last_weekday_of_month=ostatni dzie\u0144 tygodnia w miesi\u0105cu +before_last_day_of_month=przed ostatnim dniem miesi\u0105ca \ No newline at end of file diff --git a/src/main/resources/CronUtilsI18N_pt.properties b/src/main/resources/CronUtilsI18N_pt.properties index 902ff244..1a2dc4c3 100644 --- a/src/main/resources/CronUtilsI18N_pt.properties +++ b/src/main/resources/CronUtilsI18N_pt.properties @@ -17,3 +17,4 @@ of_the_month=do m\u00eas last=\u00faltima the_nearest_weekday_to_the=o dia da semana mais pr\u00f3ximo do last_day_of_month=\u00faltimo dia do m\u00eas +before_last_day_of_month=antes do \u00faltimo dia do m\u00EAs \ No newline at end of file diff --git a/src/main/resources/CronUtilsI18N_ru.properties b/src/main/resources/CronUtilsI18N_ru.properties index 919c5599..bf816967 100644 --- a/src/main/resources/CronUtilsI18N_ru.properties +++ b/src/main/resources/CronUtilsI18N_ru.properties @@ -21,3 +21,4 @@ last=\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 the_nearest_weekday_to_the=\u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0439 \u0431\u0443\u0434\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u043a last_day_of_month=\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u043c\u0435\u0441\u044f\u0446\u0430 last_weekday_of_month=\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0431\u0443\u0434\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u043c\u0435\u0441\u044f\u0446\u0430 +before_last_day_of_month=\u0434\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0434\u043D\u044F \u043C\u0435\u0441\u044F\u0446\u0430 \ No newline at end of file diff --git a/src/main/resources/CronUtilsI18N_sw.properties b/src/main/resources/CronUtilsI18N_sw.properties index 37bffea4..9b7c44cc 100644 --- a/src/main/resources/CronUtilsI18N_sw.properties +++ b/src/main/resources/CronUtilsI18N_sw.properties @@ -21,3 +21,4 @@ last=mwisho the_nearest_weekday_to_the=siku ya juma iliyokaribu na last_day_of_month=siku ya mwisho ya mwezi last_weekday_of_month=siku ya juma ya mwisho ya mwezi +before_last_day_of_month=kabla ya siku ya mwisho ya mwezi diff --git a/src/main/resources/CronUtilsI18N_tr.properties b/src/main/resources/CronUtilsI18N_tr.properties index bbc86332..4b3b251b 100644 --- a/src/main/resources/CronUtilsI18N_tr.properties +++ b/src/main/resources/CronUtilsI18N_tr.properties @@ -21,3 +21,4 @@ last=son the_nearest_weekday_to_the=\u015Fu zamana en yak\u0131n hafta i\u00E7i g\u00FCn\u00FC last_day_of_month=ay\u0131n son g\u00FCn\u00FC last_weekday_of_month=ay\u0131n son hafta i\u00E7i g\u00FCn\u00FC +before_last_day_of_month=ay\u0131n son g\u00FCn\u00FCnden \u00F6nce \ No newline at end of file diff --git a/src/main/resources/CronUtilsI18N_zh.properties b/src/main/resources/CronUtilsI18N_zh.properties index d22b4d61..e97e5da3 100644 --- a/src/main/resources/CronUtilsI18N_zh.properties +++ b/src/main/resources/CronUtilsI18N_zh.properties @@ -21,3 +21,4 @@ last=\u6700\u540e\u7684 the_nearest_weekday_to_the=\u6700\u8fd1\u7684\u5de5\u4f5c\u65e5\u8ddd last_day_of_month=\u6bcf\u6708\u6700\u540e\u4e00\u5929 last_weekday_of_month=\u6708\u4efd\u7684\u6700\u540e\u4e00\u5468 +before_last_day_of_month=\u6708\u5E95\u524D \ No newline at end of file diff --git a/src/test/java/com/cronutils/model/CronTest.java b/src/test/java/com/cronutils/model/CronTest.java index dd522292..9f2b1c44 100755 --- a/src/test/java/com/cronutils/model/CronTest.java +++ b/src/test/java/com/cronutils/model/CronTest.java @@ -149,16 +149,4 @@ public void testSerialization() throws IOException, ClassNotFoundException { } } - @Ignore - @Test - public void testIssue308(){ - CronDefinition cronDefinition = CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ); - CronParser parser = new CronParser(cronDefinition); - Cron quartzCron = parser.parse("0 0 11 L-2 * ?"); - CronDescriptor descriptor = CronDescriptor.instance(Locale.ENGLISH); - String description = descriptor.describe(quartzCron); - - // not sure what the exact string 'should' be .. - assertEquals( "at 11:00 two days before the last day of month", description); - } } diff --git a/src/test/java/com/cronutils/utils/descriptor/TestDescriptor.java b/src/test/java/com/cronutils/utils/descriptor/TestDescriptor.java index 8b494c2b..9e4f9bc3 100644 --- a/src/test/java/com/cronutils/utils/descriptor/TestDescriptor.java +++ b/src/test/java/com/cronutils/utils/descriptor/TestDescriptor.java @@ -361,7 +361,27 @@ public void testAtTimeMultipleWeekdaysOfMultipleSpecificMonths() { assertEquals("at 16:00:00pm, every Monday, Thursday and Saturday of the month, in January, May and December", descriptor.describe(cron)); } + @Test + public void testTwoDaysBeforeLastDayOfMonth(){ + CronDefinition cronDefinition = CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ); + CronParser parser = new CronParser(cronDefinition); + Cron quartzCron = parser.parse("0 0 11 L-2 * ?"); + CronDescriptor descriptor = CronDescriptor.instance(Locale.ENGLISH); + String description = descriptor.describe(quartzCron); + + assertEquals( "at 11:00 2 days before the last day of the month", description); + } + @Test + public void testOneDayBeforeLastDayOfMonth(){ + CronDefinition cronDefinition = CronDefinitionBuilder.instanceDefinitionFor(CronType.QUARTZ); + CronParser parser = new CronParser(cronDefinition); + Cron quartzCron = parser.parse("0 0 11 L-1 * ?"); + CronDescriptor descriptor = CronDescriptor.instance(Locale.ENGLISH); + String description = descriptor.describe(quartzCron); + + assertEquals( "at 11:00 1 day before the last day of the month", description); + } } From 6ef01c0e30840f52f274b0958bc615105a7c3d7f Mon Sep 17 00:00:00 2001 From: Alex Pang Date: Tue, 27 Oct 2020 00:33:46 -0400 Subject: [PATCH 2/2] Use two resource strings to describe day or days before the last day of the month. --- .../descriptor/DescriptionStrategyFactory.java | 10 +++++----- src/main/resources/CronUtilsI18N.properties | 3 ++- src/main/resources/CronUtilsI18N_de.properties | 3 ++- src/main/resources/CronUtilsI18N_el.properties | 3 ++- src/main/resources/CronUtilsI18N_en.properties | 3 ++- src/main/resources/CronUtilsI18N_es.properties | 3 ++- src/main/resources/CronUtilsI18N_fr.properties | 3 ++- src/main/resources/CronUtilsI18N_id.properties | 3 ++- src/main/resources/CronUtilsI18N_it.properties | 3 ++- src/main/resources/CronUtilsI18N_ko.properties | 3 ++- src/main/resources/CronUtilsI18N_nl.properties | 3 ++- src/main/resources/CronUtilsI18N_pl.properties | 3 ++- src/main/resources/CronUtilsI18N_pt.properties | 3 ++- src/main/resources/CronUtilsI18N_ru.properties | 3 ++- src/main/resources/CronUtilsI18N_sw.properties | 4 +++- src/main/resources/CronUtilsI18N_tr.properties | 3 ++- src/main/resources/CronUtilsI18N_zh.properties | 3 ++- .../com/cronutils/utils/descriptor/TestDescriptor.java | 2 +- 18 files changed, 39 insertions(+), 22 deletions(-) diff --git a/src/main/java/com/cronutils/descriptor/DescriptionStrategyFactory.java b/src/main/java/com/cronutils/descriptor/DescriptionStrategyFactory.java index 1d89fdbf..d617760c 100755 --- a/src/main/java/com/cronutils/descriptor/DescriptionStrategyFactory.java +++ b/src/main/java/com/cronutils/descriptor/DescriptionStrategyFactory.java @@ -14,6 +14,7 @@ package com.cronutils.descriptor; import com.cronutils.model.field.expression.Every; +import java.text.MessageFormat; import java.time.DayOfWeek; import java.time.Month; import java.time.format.TextStyle; @@ -84,11 +85,10 @@ public static DescriptionStrategy daysOfMonthInstance(final ResourceBundle bundl .format("%s %s %s ", bundle.getString("the_nearest_weekday_to_the"), on.getTime().getValue(), bundle.getString("of_the_month")); case L: Integer daysBefore = on.getNth().getValue(); - if (daysBefore > 0) { - String daysRep = - daysBefore == 1 ? bundle.getString("day") : bundle.getString("days"); - return String.format("%d %s %s", daysBefore, daysRep, - bundle.getString("before_last_day_of_month")); + if (daysBefore > 1) { + return MessageFormat.format(bundle.getString("days_before_last_day_of_month"), daysBefore); + } else if (daysBefore == 1){ + return bundle.getString("day_before_last_day_of_month"); } else { return bundle.getString("last_day_of_month"); } diff --git a/src/main/resources/CronUtilsI18N.properties b/src/main/resources/CronUtilsI18N.properties index 5d00dbf1..02b5f46e 100644 --- a/src/main/resources/CronUtilsI18N.properties +++ b/src/main/resources/CronUtilsI18N.properties @@ -21,7 +21,8 @@ last=last the_nearest_weekday_to_the=the nearest weekday to the last_day_of_month=last day of month last_weekday_of_month=last weekday of month -before_last_day_of_month=before the last day of the month +day_before_last_day_of_month=one day before the last day of the month +days_before_last_day_of_month={0} days before the last day of the month pattern_every_seconds = {0} {1} every_one=every diff --git a/src/main/resources/CronUtilsI18N_de.properties b/src/main/resources/CronUtilsI18N_de.properties index d356572a..0c142d63 100644 --- a/src/main/resources/CronUtilsI18N_de.properties +++ b/src/main/resources/CronUtilsI18N_de.properties @@ -21,7 +21,8 @@ last=letzten the_nearest_weekday_to_the=am n\ufffdchsten Werktag nach dem last_day_of_month=letzten Tag des Monats last_weekday_of_month=letzten Werktag des Monats -before_last_day_of_month=vor dem letzten Tag des Monats +day_before_last_day_of_month=einen Tag vor dem letzten Tag des Monats +days_before_last_day_of_month={0} Tage vor dem letzten Tag des Monats pattern_every_seconds = {0} {1} every_one=jede diff --git a/src/main/resources/CronUtilsI18N_el.properties b/src/main/resources/CronUtilsI18N_el.properties index f3db06b5..8e0d5fdc 100644 --- a/src/main/resources/CronUtilsI18N_el.properties +++ b/src/main/resources/CronUtilsI18N_el.properties @@ -21,4 +21,5 @@ last=\u03C4\u03B5\u03BB\u03B1\u03C5\u03C4\u03B1\u03AF\u03BF the_nearest_weekday_to_the=\u03B7 \u03BA\u03BF\u03BD\u03C4\u03B9\u03BD\u03CC\u03C4\u03B5\u03C1\u03B7 \u03B5\u03C1\u03B3\u03AC\u03C3\u03B9\u03BC\u03B7 \u03C3\u03C4\u03BF last_day_of_month=\u03C4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u03BC\u03AD\u03C1\u03B1 \u03C4\u03BF\u03C5 \u03BC\u03AE\u03BD\u03B1 last_weekday_of_month=\u03C4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u03B5\u03C1\u03B3\u03AC\u03C3\u03B9\u03BC\u03B7 \u03C4\u03BF\u03C5 \u03BC\u03AE\u03BD\u03B1 -before_last_day_of_month=\u03C0\u03C1\u03B9\u03BD \u03B1\u03C0\u03CC \u03C4\u03B7\u03BD \u03C4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u03B7\u03BC\u03AD\u03C1\u03B1 \u03C4\u03BF\u03C5 \u03BC\u03AE\u03BD\u03B1 \ No newline at end of file +day_before_last_day_of_month=\u03BC\u03AF\u03B1 \u03B7\u03BC\u03AD\u03C1\u03B1 \u03C0\u03C1\u03B9\u03BD \u03B1\u03C0\u03CC \u03C4\u03B7\u03BD \u03C4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u03B7\u03BC\u03AD\u03C1\u03B1 \u03C4\u03BF\u03C5 \u03BC\u03AE\u03BD\u03B1 +days_before_last_day_of_month={0} \u03B7\u03BC\u03AD\u03C1\u03B5\u03C2 \u03C0\u03C1\u03B9\u03BD \u03B1\u03C0\u03CC \u03C4\u03B7\u03BD \u03C4\u03B5\u03BB\u03B5\u03C5\u03C4\u03B1\u03AF\u03B1 \u03B7\u03BC\u03AD\u03C1\u03B1 \u03C4\u03BF\u03C5 \u03BC\u03AE\u03BD\u03B1 diff --git a/src/main/resources/CronUtilsI18N_en.properties b/src/main/resources/CronUtilsI18N_en.properties index 66afe5d8..e8d64964 100644 --- a/src/main/resources/CronUtilsI18N_en.properties +++ b/src/main/resources/CronUtilsI18N_en.properties @@ -22,4 +22,5 @@ last=last the_nearest_weekday_to_the=the nearest weekday to the last_day_of_month=last day of month last_weekday_of_month=last weekday of month -before_last_day_of_month=before the last day of the month \ No newline at end of file +day_before_last_day_of_month=one day before the last day of the month +days_before_last_day_of_month={0} days before the last day of the month diff --git a/src/main/resources/CronUtilsI18N_es.properties b/src/main/resources/CronUtilsI18N_es.properties index 1b47fc9f..959d0e92 100644 --- a/src/main/resources/CronUtilsI18N_es.properties +++ b/src/main/resources/CronUtilsI18N_es.properties @@ -21,4 +21,5 @@ last=ultimo the_nearest_weekday_to_the=dia de semana mas cercano a last_day_of_month=ultimo dia del mes last_weekday_of_month=ultimo dia de semana del mes -before_last_day_of_month=antes del \u00FAltimo d\u00EDa del mes \ No newline at end of file +day_before_last_day_of_month=un día antes del último día del mes +days_before_last_day_of_month={0} días antes del último día del mes diff --git a/src/main/resources/CronUtilsI18N_fr.properties b/src/main/resources/CronUtilsI18N_fr.properties index 755c7e0c..7a94bde3 100644 --- a/src/main/resources/CronUtilsI18N_fr.properties +++ b/src/main/resources/CronUtilsI18N_fr.properties @@ -21,4 +21,5 @@ days=jours months=les mois years=les ann\u00e9es last_weekday_of_month=derni\u00e8re semaine du mois -before_last_day_of_month=avant le dernier jour du mois \ No newline at end of file +day_before_last_day_of_month=un jour avant le dernier jour du mois +days_before_last_day_of_month={0} jours avant le dernier jour du mois diff --git a/src/main/resources/CronUtilsI18N_id.properties b/src/main/resources/CronUtilsI18N_id.properties index 5a8d24c8..9592b425 100644 --- a/src/main/resources/CronUtilsI18N_id.properties +++ b/src/main/resources/CronUtilsI18N_id.properties @@ -21,4 +21,5 @@ last=terakhir the_nearest_weekday_to_the=hari kerja terdekat ke last_day_of_month=hari terakhir di bulan last_weekday_of_month=hari kerja terakhir di bulan -before_last_day_of_month=sebelum hari terakhir setiap bulan +day_before_last_day_of_month=satu hari sebelum hari terakhir bulan itu +days_before_last_day_of_month={0} hari sebelum hari terakhir setiap bulan diff --git a/src/main/resources/CronUtilsI18N_it.properties b/src/main/resources/CronUtilsI18N_it.properties index 70a63431..24a3f9d0 100644 --- a/src/main/resources/CronUtilsI18N_it.properties +++ b/src/main/resources/CronUtilsI18N_it.properties @@ -21,4 +21,5 @@ last=ultimo the_nearest_weekday_to_the=il giorno della settimana più vicino a last_day_of_month=ultimo giorno del mese last_weekday_of_month=ultimo giorno della settimana nel mese -before_last_day_of_month=prima dell'ultimo giorno del mese \ No newline at end of file +day_before_last_day_of_month=un giorno prima dell'ultimo giorno del mese +days_before_last_day_of_month={0} giorni prima dell'ultimo giorno del mese diff --git a/src/main/resources/CronUtilsI18N_ko.properties b/src/main/resources/CronUtilsI18N_ko.properties index a73b55d7..edb43254 100644 --- a/src/main/resources/CronUtilsI18N_ko.properties +++ b/src/main/resources/CronUtilsI18N_ko.properties @@ -21,4 +21,5 @@ last=\uB9C8\uC9C0\uB9C9 the_nearest_weekday_to_the=\uAC00\uC7A5 \uAC00\uAE4C\uC6B4 \uD3C9\uC77C last_day_of_month=\uB9D0\uC77C last_weekday_of_month=\uB9C8\uC9C0\uB9C9 \uC8FC -before_last_day_of_month=\uB9E4\uC6D4 \uB9D0\uC77C \uC774\uC804 \ No newline at end of file +day_before_last_day_of_month=\uB9E4\uC6D4 \uB9D0\uC77C \uD558\uB8E8 \uC804 +days_before_last_day_of_month=\uB9E4\uC6D4 \uB9D0\uC77C {0} \uC77C \uC804 \ No newline at end of file diff --git a/src/main/resources/CronUtilsI18N_nl.properties b/src/main/resources/CronUtilsI18N_nl.properties index a23146fc..3479fe44 100644 --- a/src/main/resources/CronUtilsI18N_nl.properties +++ b/src/main/resources/CronUtilsI18N_nl.properties @@ -21,7 +21,8 @@ last=laatste the_nearest_weekday_to_the=de dichtsbijzijnde weekdag voor de last_day_of_month=laaste dag van maand last_weekday_of_month=laatste weekdag van maand -before_last_day_of_month=v\u00F3\u00F3r de laatste dag van de maand +day_before_last_day_of_month=een dag voor de laatste dag van de maand +days_before_last_day_of_month={0} dagen voor de laatste dag van de maand pattern_every_seconds = {0} {1} every_one=elke diff --git a/src/main/resources/CronUtilsI18N_pl.properties b/src/main/resources/CronUtilsI18N_pl.properties index 15d0010a..c8daec82 100644 --- a/src/main/resources/CronUtilsI18N_pl.properties +++ b/src/main/resources/CronUtilsI18N_pl.properties @@ -21,4 +21,5 @@ last=ostatni the_nearest_weekday_to_the=najbli\u017Cszy weekend last_day_of_month=ostatni dzie\u0144 miesi\u0105ca last_weekday_of_month=ostatni dzie\u0144 tygodnia w miesi\u0105cu -before_last_day_of_month=przed ostatnim dniem miesi\u0105ca \ No newline at end of file +day_before_last_day_of_month=jeden dzie\u0144 przed ostatnim dniem miesi\u0105ca +days_before_last_day_of_month={0} dni przed ostatnim dniem miesi\u0105ca diff --git a/src/main/resources/CronUtilsI18N_pt.properties b/src/main/resources/CronUtilsI18N_pt.properties index 1a2dc4c3..6a08f7b9 100644 --- a/src/main/resources/CronUtilsI18N_pt.properties +++ b/src/main/resources/CronUtilsI18N_pt.properties @@ -17,4 +17,5 @@ of_the_month=do m\u00eas last=\u00faltima the_nearest_weekday_to_the=o dia da semana mais pr\u00f3ximo do last_day_of_month=\u00faltimo dia do m\u00eas -before_last_day_of_month=antes do \u00faltimo dia do m\u00EAs \ No newline at end of file +day_before_last_day_of_month=um dia antes do \u00FAltimo dia do m\u00EAs +days_before_last_day_of_month={0} dias antes do \u00FAltimo dia do m\u00EAs diff --git a/src/main/resources/CronUtilsI18N_ru.properties b/src/main/resources/CronUtilsI18N_ru.properties index bf816967..a2990353 100644 --- a/src/main/resources/CronUtilsI18N_ru.properties +++ b/src/main/resources/CronUtilsI18N_ru.properties @@ -21,4 +21,5 @@ last=\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 the_nearest_weekday_to_the=\u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0439 \u0431\u0443\u0434\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u043a last_day_of_month=\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u043c\u0435\u0441\u044f\u0446\u0430 last_weekday_of_month=\u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0431\u0443\u0434\u043d\u0438\u0439 \u0434\u0435\u043d\u044c \u043c\u0435\u0441\u044f\u0446\u0430 -before_last_day_of_month=\u0434\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0434\u043D\u044F \u043C\u0435\u0441\u044F\u0446\u0430 \ No newline at end of file +day_before_last_day_of_month=\u0437\u0430 \u0434\u0435\u043D\u044C \u0434\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0434\u043D\u044F \u043C\u0435\u0441\u044F\u0446\u0430 +days_before_last_day_of_month=\u0417\u0430 {0} \u0434\u043D\u044F \u0434\u043E \u043F\u043E\u0441\u043B\u0435\u0434\u043D\u0435\u0433\u043E \u0434\u043D\u044F \u043C\u0435\u0441\u044F\u0446\u0430 diff --git a/src/main/resources/CronUtilsI18N_sw.properties b/src/main/resources/CronUtilsI18N_sw.properties index 9b7c44cc..c8f14cc8 100644 --- a/src/main/resources/CronUtilsI18N_sw.properties +++ b/src/main/resources/CronUtilsI18N_sw.properties @@ -21,4 +21,6 @@ last=mwisho the_nearest_weekday_to_the=siku ya juma iliyokaribu na last_day_of_month=siku ya mwisho ya mwezi last_weekday_of_month=siku ya juma ya mwisho ya mwezi -before_last_day_of_month=kabla ya siku ya mwisho ya mwezi +day_before_last_day_of_month=siku moja kabla ya siku ya mwisho ya mwezi +days_before_last_day_of_month=Siku {0} kabla ya siku ya mwisho ya mwezi + diff --git a/src/main/resources/CronUtilsI18N_tr.properties b/src/main/resources/CronUtilsI18N_tr.properties index 4b3b251b..e07cbb22 100644 --- a/src/main/resources/CronUtilsI18N_tr.properties +++ b/src/main/resources/CronUtilsI18N_tr.properties @@ -21,4 +21,5 @@ last=son the_nearest_weekday_to_the=\u015Fu zamana en yak\u0131n hafta i\u00E7i g\u00FCn\u00FC last_day_of_month=ay\u0131n son g\u00FCn\u00FC last_weekday_of_month=ay\u0131n son hafta i\u00E7i g\u00FCn\u00FC -before_last_day_of_month=ay\u0131n son g\u00FCn\u00FCnden \u00F6nce \ No newline at end of file +day_before_last_day_of_month=ay\u0131n son g\u00FCn\u00FCnden bir g\u00FCn \u00F6nce +days_before_last_day_of_month=Ay\u0131n son g\u00FCn\u00FCnden {0} g\u00FCn \u00F6nce diff --git a/src/main/resources/CronUtilsI18N_zh.properties b/src/main/resources/CronUtilsI18N_zh.properties index e97e5da3..0ac0d15c 100644 --- a/src/main/resources/CronUtilsI18N_zh.properties +++ b/src/main/resources/CronUtilsI18N_zh.properties @@ -21,4 +21,5 @@ last=\u6700\u540e\u7684 the_nearest_weekday_to_the=\u6700\u8fd1\u7684\u5de5\u4f5c\u65e5\u8ddd last_day_of_month=\u6bcf\u6708\u6700\u540e\u4e00\u5929 last_weekday_of_month=\u6708\u4efd\u7684\u6700\u540e\u4e00\u5468 -before_last_day_of_month=\u6708\u5E95\u524D \ No newline at end of file +day_before_last_day_of_month=\u8BE5\u6708\u6700\u540E\u4E00\u5929\u7684\u524D\u4E00\u5929 +days_before_last_day_of_month=\u8BE5\u6708\u6700\u540E\u4E00\u5929\u7684\u524D{0}\u5929 diff --git a/src/test/java/com/cronutils/utils/descriptor/TestDescriptor.java b/src/test/java/com/cronutils/utils/descriptor/TestDescriptor.java index 9e4f9bc3..b77e3158 100644 --- a/src/test/java/com/cronutils/utils/descriptor/TestDescriptor.java +++ b/src/test/java/com/cronutils/utils/descriptor/TestDescriptor.java @@ -380,7 +380,7 @@ public void testOneDayBeforeLastDayOfMonth(){ CronDescriptor descriptor = CronDescriptor.instance(Locale.ENGLISH); String description = descriptor.describe(quartzCron); - assertEquals( "at 11:00 1 day before the last day of the month", description); + assertEquals( "at 11:00 one day before the last day of the month", description); }