Skip to content

Commit 1465bde

Browse files
authored
Merge pull request #633 from sajjadkarimi/issue632
#632: Implement support for starting point of intervals
2 parents d31697e + 6fa4d3f commit 1465bde

22 files changed

+42
-10
lines changed

src/main/java/com/cronutils/descriptor/DescriptionStrategy.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ protected String describe(final Between between, final boolean and) {
157157
protected String describe(final Every every, final boolean and) {
158158
String description;
159159
if (every.getPeriod().getValue() > 1) {
160-
description = String.format("%s %s ", bundle.getString(EVERY), nominalValue(every.getPeriod()))
160+
description = String.format("%s %s ", bundle.getString(EVERY), every.getPeriod())
161161
+ " replace_plural ";
162162
} else {
163163
description = bundle.getString(EVERY) + " %s ";
@@ -167,6 +167,10 @@ protected String describe(final Every every, final boolean and) {
167167
description += MessageFormat.format(bundle.getString("between_x_and_y"), nominalValue(between.getFrom()),
168168
nominalValue(between.getTo())) + WHITE_SPACE;
169169
}
170+
if (every.getExpression() instanceof On) {
171+
final On on = (On) every.getExpression();
172+
description += bundle.getString("from") + " %s " + nominalValue(on.getTime());
173+
}
170174
return description;
171175
}
172176

src/main/resources/com/cronutils/CronUtilsI18N.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ between_x_and_y=between {0} and {1}
22
every=every
33
and=and
44
at=at
5+
from=from
56
day=day
67
days=days
78
hour=hour

src/main/resources/com/cronutils/CronUtilsI18N_de.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ between_x_and_y=zwischen {0} und {1}
22
every=jede
33
and=und
44
at=um
5+
from=von
56
day=Tag
67
days=Tage
78
hour=Stunde

src/main/resources/com/cronutils/CronUtilsI18N_el.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ between_x_and_y=\u03BC\u03B5\u03C4\u03B1\u03BE\u03CD {0} \u03BA\u03B1\u03B9 {1}
22
every=\u03BA\u03AC\u03B8\u03B5
33
and=\u03BA\u03B1\u03B9
44
at=\u03C3\u03C4\u03BF/\u03C3\u03C4\u03B7/\u03C3\u03C4\u03B9\u03C2/\u03C4\u03B7
5+
from=\u03B1\u03C0\u03CC
56
day=\u03BC\u03AD\u03C1\u03B1
67
days=\u03BC\u03AD\u03C1\u03B5\u03C2
78
hour=\u03CE\u03C1\u03B1

src/main/resources/com/cronutils/CronUtilsI18N_en.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ between_x_and_y=between {0} and {1}
22
every=every
33
and=and
44
at=at
5+
from=from
56
day=day
67
days=days
78
hour=hour

src/main/resources/com/cronutils/CronUtilsI18N_es.properties

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ between_x_and_y=entre {0} y {1}
22
every=cada
33
and=y
44
at=en
5+
from=de
56
day=dia
67
days=dias
78
hour=hora
@@ -21,6 +22,6 @@ last=ultimo
2122
the_nearest_weekday_to_the=dia de semana mas cercano a
2223
last_day_of_month=ultimo dia del mes
2324
last_weekday_of_month=ultimo dia de semana del mes
24-
day_before_last_day_of_month=un día antes del último día del mes
25-
days_before_last_day_of_month={0} días antes del último día del mes
25+
day_before_last_day_of_month=un d�a antes del �ltimo d�a del mes
26+
days_before_last_day_of_month={0} d�as antes del �ltimo d�a del mes
2627

src/main/resources/com/cronutils/CronUtilsI18N_fr.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ every=chaque
33
second=seconde
44
and=et
55
at=\u00e0
6+
from=de
67
day=jour
78
hour=heure
89
hours=heures

src/main/resources/com/cronutils/CronUtilsI18N_id.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ between_x_and_y=antara {0} dan {1}
22
every=setiap
33
and=dan
44
at=di
5+
from=dari
56
day=hari
67
days=hari
78
hour=jam

src/main/resources/com/cronutils/CronUtilsI18N_it.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ between_x_and_y=tra {0} e {1}
22
every=ogni
33
and=e
44
at=alle
5+
from=da
56
day=giorno
67
days=giorni
78
hour=ora

src/main/resources/com/cronutils/CronUtilsI18N_ja.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
between_x_and_y={0}\u3068{1}\u306e\u9593
22
every=\u6bce
33
and=\u3068
4-
at=
4+
at=\u306b
5+
from=\u304b\u3089
56
day=\u65e5
67
days=\u65e5
78
hour=\u6642

src/main/resources/com/cronutils/CronUtilsI18N_ko.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ between_x_and_y={0} ~ {1} \uAE4C\uC9C0
22
every=\uB9E4
33
and=\uD558\uACE0
44
at=\uB9E4
5+
from=\uC5C6\uC74C
56
day=\uC77C
67
days=\uC77C
78
hour=\uC2DC\uAC04

src/main/resources/com/cronutils/CronUtilsI18N_nl.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ between_x_and_y=tussen {0} en {1}
22
every=elke
33
and=en
44
at=om
5+
from=van
56
day=dag
67
days=dagen
78
hour=uur

src/main/resources/com/cronutils/CronUtilsI18N_pl.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ between_x_and_y=mi\u0119dzy {0} oraz {1}
22
every=ka\u017Cdy
33
and=oraz
44
at=o
5+
from=od
56
day=dzie\u0144
67
days=dni
78
hour=godzina

src/main/resources/com/cronutils/CronUtilsI18N_pt.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ every=cada
33
second=segundo
44
and=e
55
at=em
6+
from=de
67
day=dia
78
days=dias
89
hour=hora

src/main/resources/com/cronutils/CronUtilsI18N_ro.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ between_x_and_y=intre {0} si {1}
22
every=fiecare
33
and=\u015Fi
44
at=at
5+
from=de la
56
day=zi
67
days=zile
78
hour=ora

src/main/resources/com/cronutils/CronUtilsI18N_ru.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ between_x_and_y=\u043c\u0435\u0436\u0434\u0443 {0} \u0438 {1}
22
every=\u043a\u0430\u0436\u0434\u044b\u0439
33
and=\u0438
44
at=\u0432
5+
from=\u0441
56
day=\u0434\u0435\u043d\u044c
67
days=\u0434\u043d\u0438
78
hour=\u0447\u0430\u0441

src/main/resources/com/cronutils/CronUtilsI18N_sw.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ between_x_and_y=kutoka {0} hadi {1}
22
every=kila
33
and=na
44
at=mnamo
5+
from=kutoka
56
day=siku
67
days=siku
78
hour=saa

src/main/resources/com/cronutils/CronUtilsI18N_tr.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ between_x_and_y={0} ve {1} aras\u0131nda
22
every=her
33
and=ve
44
at=\u015Fu zamanda :
5+
from=itibaren
56
day=g\u00FCn
67
days=g\u00FC
78
hour=saat

src/main/resources/com/cronutils/CronUtilsI18N_zh.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ between_x_and_y=\u5728{0}\u548c{1}\u4e4b\u95f4
22
every=\u6bcf
33
and=\u548c
44
at=\u5728
5+
from=\u4ece
56
day=\u5929
67
days=\u5929
78
hour=\u5c0f\u65f6

src/test/java/com/cronutils/Issue440Test.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public void testCase1() {
1818
CronDescriptor descriptor = CronDescriptor.instance(Locale.UK);
1919
String description = descriptor.describe(parser.parse("* 2,1/31 * * * ?"));
2020

21-
assertEquals("every second at minute 2 and every 31 minutes", description);
21+
assertEquals("every second at minute 2 and every 31 minutes from minute 1", description);
2222
}
2323

2424
@Test
@@ -27,6 +27,6 @@ public void testCase2() {
2727
CronDescriptor descriptor = CronDescriptor.instance(Locale.UK);
2828
String description = descriptor.describe(parser.parse("2,1/31 * * * *"));
2929

30-
assertEquals("at minute 2 and every 31 minutes", description);
30+
assertEquals("at minute 2 and every 31 minutes from minute 1", description);
3131
}
3232
}

src/test/java/com/cronutils/utils/descriptor/CronDescriptorQuartzIntegrationTest.java

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,12 +92,22 @@ public void testEveryMinuteBetween14and15EveryDay() {
9292

9393
@Test
9494
public void testEveryFiveMinutesBetween14and15EveryDay() {
95-
assertExpression("0 0/5 14 * * ?", "every 5 minutes at 14 hour");
95+
assertExpression("0 0/5 14 * * ?", "every 5 minutes from minute 0 at 14 hour");
9696
}
9797

9898
@Test
9999
public void testEveryFiveMinutesBetween14and15AndBetween18And19EveryDay() {
100-
assertExpression("0 0/5 14,18 * * ?", "every 5 minutes at 14 and 18 hours");
100+
assertExpression("0 0/5 14,18 * * ?", "every 5 minutes from minute 0 at 14 and 18 hours");
101+
}
102+
103+
@Test
104+
public void testEveryFiveDaysStartingOnDay3OfTheMonth() {
105+
assertExpression("0 0 0 3/5 * ?", "at 00:00 every 5 days from day 3");
106+
}
107+
108+
@Test
109+
public void testEveryFiveDaysStartingOnTuesday() {
110+
assertExpression("0 0 0 ? * 3/5", "at 00:00 every 5 days from day Tuesday");
101111
}
102112

103113
/**
@@ -113,7 +123,7 @@ public void testEveryDayEveryFourHoursFromHour2() {
113123
*/
114124
@Test
115125
public void testDescriptionDayOfWeek() {
116-
assertExpression("* 0/1 * ? * TUE", "every second every minute at Tuesday day");
126+
assertExpression("* 0/1 * ? * TUE", "every second every minute from minute 0 at Tuesday day");
117127
}
118128

119129
/**

src/test/java/com/cronutils/utils/descriptor/Issue343Test.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public static Stream<Expr> expressions() {
3030
new Expr("*/10 * * * * *", "every 10 seconds"),
3131
new Expr("0 0 8-10 * * *", "every hour between 8 and 10"),
3232
new Expr("0 0 6,19 * * *", "at 6 and 19 hours"),
33-
new Expr("0 0/30 8-10 * * *", "every 30 minutes every hour between 8 and 10"),
33+
new Expr("0 0/30 8-10 * * *", "every 30 minutes from minute 0 every hour between 8 and 10"),
3434
new Expr("0 0 9-17 * * MON-FRI", "every hour between 9 and 17 every day between Monday and Friday")
3535
);
3636
}

0 commit comments

Comments
 (0)