DateUtilsTest.java
package com.cronutils.utils;
import org.junit.jupiter.api.Test;
import java.time.LocalDate;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class DateUtilsTest {
@Test
public void workdaysCountPolicyThursday() throws Exception {
LocalDate date = LocalDate.of(2018, 1, 6);//this is a saturday
int daysToEndDate = 1;//sunday
WeekendPolicy policy = WeekendPolicy.THURSDAY_FRIDAY;
int workdaysCount = DateUtils.workdaysCount(ZonedDateTime.of(date, LocalTime.of(1, 0), ZoneId.of("America/Argentina/Buenos_Aires")), daysToEndDate, new ArrayList<>(), policy);
assertEquals(2, workdaysCount);
}
@Test
public void workdaysCountPolicyFriday() throws Exception {
LocalDate date = LocalDate.of(2018, 1, 6);//this is a saturday
int daysToEndDate = 1;//sunday
WeekendPolicy policy = WeekendPolicy.FRIDAY_SATURDAY;
int daysToWorkday = DateUtils.workdaysCount(ZonedDateTime.of(date, LocalTime.of(1, 0), ZoneId.of("America/Argentina/Buenos_Aires")), daysToEndDate, new ArrayList<>(), policy);
assertEquals(1, daysToWorkday);
}
@Test
public void workdaysCountPolicySaturday() throws Exception {
LocalDate date = LocalDate.of(2018, 1, 6);//this is a saturday
int daysToEndDate = 1;//sunday
WeekendPolicy policy = WeekendPolicy.SATURDAY_SUNDAY;
int daysToWorkday = DateUtils.workdaysCount(ZonedDateTime.of(date, LocalTime.of(1, 0), ZoneId.of("America/Argentina/Buenos_Aires")), daysToEndDate, new ArrayList<>(), policy);
assertEquals(0, daysToWorkday);
}
@Test
public void workdaysMay2018Argentina() throws Exception {
ZonedDateTime start = ZonedDateTime.of(LocalDate.of(2018, 5, 1), LocalTime.of(1, 0), ZoneId.of("America/Argentina/Buenos_Aires"));
ZonedDateTime end = ZonedDateTime.of(LocalDate.of(2018, 5, 31), LocalTime.of(1, 0), ZoneId.of("America/Argentina/Buenos_Aires"));
List<ZonedDateTime> holidays = Arrays.asList(
ZonedDateTime.of(LocalDate.of(2018, 5, 1), LocalTime.of(1, 0), ZoneId.of("America/Argentina/Buenos_Aires")),
ZonedDateTime.of(LocalDate.of(2018, 5, 25), LocalTime.of(1, 0), ZoneId.of("America/Argentina/Buenos_Aires"))
);
WeekendPolicy policy = WeekendPolicy.SATURDAY_SUNDAY;
int daysToWorkday = DateUtils.workdaysCount(start, end, holidays, policy);
assertEquals(21, daysToWorkday);
}
}