use of cn.hutool.core.date.DateRange in project hutool by looly.
the class RangeTest method rangeByStepTest.
@Test
public void rangeByStepTest() {
DateTime start = DateUtil.parse("2017-01-01");
DateTime end = DateUtil.parse("2017-01-03");
// 测试包含开始和结束情况下步进为1的情况
DateRange range = DateUtil.range(start, end, DateField.DAY_OF_YEAR);
Assert.assertEquals(range.next(), DateUtil.parse("2017-01-01"));
Assert.assertEquals(range.next(), DateUtil.parse("2017-01-02"));
Assert.assertEquals(range.next(), DateUtil.parse("2017-01-03"));
try {
range.next();
Assert.fail("已超过边界,下一个元素不应该存在!");
} catch (NoSuchElementException ignored) {
}
// 测试多步进的情况
range = new DateRange(start, end, DateField.DAY_OF_YEAR, 2);
Assert.assertEquals(DateUtil.parse("2017-01-01"), range.next());
Assert.assertEquals(DateUtil.parse("2017-01-03"), range.next());
}
use of cn.hutool.core.date.DateRange in project hutool by looly.
the class RangeTest method rangeDayOfYearTest.
@Test
public void rangeDayOfYearTest() {
DateTime start = DateUtil.parse("2017-01-01");
DateTime end = DateUtil.parse("2017-01-05");
// 测试不包含开始结束时间的情况
DateRange range = new DateRange(start, end, DateField.DAY_OF_YEAR, 1, false, false);
Assert.assertEquals(DateUtil.parse("2017-01-02"), range.next());
Assert.assertEquals(DateUtil.parse("2017-01-03"), range.next());
Assert.assertEquals(DateUtil.parse("2017-01-04"), range.next());
try {
range.next();
Assert.fail("不包含结束时间情况下,下一个元素不应该存在!");
} catch (NoSuchElementException ignored) {
}
}
use of cn.hutool.core.date.DateRange in project hutool by looly.
the class RangeTest method rangeContains.
@Test
public void rangeContains() {
// 开始区间
DateTime start = DateUtil.parse("2017-01-01");
DateTime end = DateUtil.parse("2017-01-31");
DateRange startRange = DateUtil.range(start, end, DateField.DAY_OF_YEAR);
// 结束区间
DateTime start1 = DateUtil.parse("2017-01-31");
DateTime end1 = DateUtil.parse("2017-02-02");
DateRange endRange = DateUtil.range(start1, end1, DateField.DAY_OF_YEAR);
// 交集
List<DateTime> dateTimes = DateUtil.rangeContains(startRange, endRange);
Assert.assertEquals(1, dateTimes.size());
Assert.assertEquals(DateUtil.parse("2017-01-31"), dateTimes.get(0));
}
use of cn.hutool.core.date.DateRange in project hutool by looly.
the class RangeTest method rangeNotContains.
@Test
public void rangeNotContains() {
// 开始区间
DateTime start = DateUtil.parse("2017-01-01");
DateTime end = DateUtil.parse("2017-01-30");
DateRange startRange = DateUtil.range(start, end, DateField.DAY_OF_YEAR);
// 结束区间
DateTime start1 = DateUtil.parse("2017-01-01");
DateTime end1 = DateUtil.parse("2017-01-31");
DateRange endRange = DateUtil.range(start1, end1, DateField.DAY_OF_YEAR);
// 差集
List<DateTime> dateTimes1 = DateUtil.rangeNotContains(startRange, endRange);
Assert.assertEquals(1, dateTimes1.size());
Assert.assertEquals(DateUtil.parse("2017-01-31"), dateTimes1.get(0));
}
use of cn.hutool.core.date.DateRange in project hutool by looly.
the class RangeTest method dateRangeTest2.
@Test
public void dateRangeTest2() {
DateTime start = DateUtil.parse("2021-01-31");
DateTime end = DateUtil.parse("2021-03-31");
final DateRange range = DateUtil.range(start, end, DateField.MONTH);
Assert.assertTrue(range.hasNext());
Assert.assertEquals(DateUtil.parse("2021-01-31"), range.next());
Assert.assertTrue(range.hasNext());
Assert.assertEquals(DateUtil.parse("2021-02-28"), range.next());
Assert.assertTrue(range.hasNext());
Assert.assertEquals(DateUtil.parse("2021-03-31"), range.next());
Assert.assertFalse(range.hasNext());
}
Aggregations