Search in sources :

Example 1 with DateRange

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());
}
Also used : DateRange(cn.hutool.core.date.DateRange) DateTime(cn.hutool.core.date.DateTime) NoSuchElementException(java.util.NoSuchElementException) Test(org.junit.Test)

Example 2 with DateRange

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) {
    }
}
Also used : DateRange(cn.hutool.core.date.DateRange) DateTime(cn.hutool.core.date.DateTime) NoSuchElementException(java.util.NoSuchElementException) Test(org.junit.Test)

Example 3 with DateRange

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));
}
Also used : DateRange(cn.hutool.core.date.DateRange) DateTime(cn.hutool.core.date.DateTime) Test(org.junit.Test)

Example 4 with DateRange

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));
}
Also used : DateRange(cn.hutool.core.date.DateRange) DateTime(cn.hutool.core.date.DateTime) Test(org.junit.Test)

Example 5 with DateRange

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());
}
Also used : DateRange(cn.hutool.core.date.DateRange) DateTime(cn.hutool.core.date.DateTime) Test(org.junit.Test)

Aggregations

DateRange (cn.hutool.core.date.DateRange)5 DateTime (cn.hutool.core.date.DateTime)5 Test (org.junit.Test)5 NoSuchElementException (java.util.NoSuchElementException)2