Attributes | |

`duration` | Source Code`shared formal Duration duration` Returns the Duration between Example: Given: today().to(tomorrow).duration then duration is 86400000 milliseconds. Given: tomorrow().to(today).duration then duration is -86400000 milliseconds. |

`from` | Source Code`shared formal Element from` The first Element returned by the iterator, if any.
This should always produce the same value as
Example: today().to(tomorrow) -> in this case today() is the caller/creator of the range. |

`hash` | Source Code`shared actual default Integer hash` This implementation respect the constraint that if Refines `Object.hash` |

`period` | Source Code`shared formal Period period` Returns the Period between Example: Given: today().to(tomorrow).duration then duration is 1 day. Given: tomorrow().to(today).duration then duration is -1 day. |

`step` | Source Code`shared formal UnitOfDate|UnitOfTime step` Customized way to iterate over each element, it does not interfer in |

`string` | Source Code`shared actual default String string` Returns ISO-8601 formatted String representation of this Range. Reference: https://en.wikipedia.org/wiki/ISO_8601#Time_intervals |

`to` | Source Code`shared formal Element to` The limit of the Range where. Example: Given: today().to(tomorrow) then tomorrow is the Given: tomorrow.to(today()) then today() is the |

Inherited Attributes |

Attributes inherited from: `Object` |

Attributes inherited from: `Iterable<Element,Absent>` |

Methods | |

`equals` | Source Code`shared actual default Boolean equals(Object other)` Returns true if both: this and other are same type and have equal fields Refines `Object.equals` |

`gap` | Source Code`shared formal Range<Element,StepBy>|[] gap(Range<Element,StepBy> other)` Returns empty or a new Range: - Each Range is considered a
*set*then [A..B] is equivalent to [B..A] - The precision is based on the lowest unit
- When the new Range exists it will follow these rules:
Given: [A..B] gap [C..D] When: AB < CD [1..2] gap [5..6] = (2,5) [1..2] gap [6..5] = (2,5) [2..1] gap [5..6] = (2,5) [2..1] gap [6..5] = (2,5) Given: [A..B] gap [C..D] When: AB > CD [5..6] gap [1..2] = (2,5) [5..6] gap [2..1] = (2,5) [6..5] gap [1..2] = (2,5) [6..5] gap [2..1] = (2,5) |

`overlap` | Source Code`shared formal Range<Element,StepBy>|[] overlap(Range<Element,StepBy> other)` Returns empty or a new Range: - Each Range is considered a
*set*then [A..B] is equivalent to [B..A] - The precision is based on the lowest unit
- When the new Range exists it will follow these rules:
Given: [A..B] overlap [C..D] When: AB < CD [1..6] overlap [3..9] = [3,6] [1..6] overlap [9..3] = [3,6] [6..1] overlap [3..9] = [3,6] [6..1] overlap [9..3] = [3,6] Given: [A..B] overlap [C..D] When: AB > CD [3..9] overlap [1..6] = [3,6] [3..9] overlap [6..1] = [3,6] [9..3] overlap [1..6] = [3,6] [9..3] overlap [6..1] = [3,6] |

`stepBy` | Source Code`shared formal Range<Element,StepBy> stepBy(StepBy step)` Define how this Range will get next or previous element while iterating. |

Inherited Methods |

Methods inherited from: `Object` |

Methods inherited from: `Category<Element>` |

Methods inherited from: `Iterable<Element,Absent>` `any()` , `by()` , `chain()` , `collect()` , `contains()` , `count()` , `defaultNullElements()` , `each()` , `every()` , `filter()` , `find()` , `findLast()` , `flatMap()` , `fold()` , `follow()` , `frequencies()` , `getFromFirst()` , `group()` , `indexes()` , `interpose()` , `iterator()` , `locate()` , `locateLast()` , `locations()` , `longerThan()` , `map()` , `max()` , `narrow()` , `partition()` , `product()` , `reduce()` , `repeat()` , `scan()` , `select()` , `sequence()` , `shorterThan()` , `skip()` , `skipWhile()` , `sort()` , `spread()` , `summarize()` , `tabulate()` , `take()` , `takeWhile()` |