Class PersianCalendar.Date
- All Implemented Interfaces:
ChronoDisplay
- Enclosing class:
- PersianCalendar
Static view of calendar date taking into account possibly different calendar algorithms.
Following example demonstrates the difference between the standard algorithm and the algorithm proposed by A. Birashk:
PersianCalendar pcal = PersianCalendar.of(1403, 12, 30); // = 2025-03-20 (gregorian) PersianCalendar.Date birashk = pcal.getDate(PersianAlgorithm.BIRASHK); // AP-1404-01-01[BIRASHK] assertThat(birashk.get(PersianCalendar.YEAR_OF_ERA), is(Integer.valueOf(1404))); assertThat(birashk.getInt(PersianCalendar.YEAR_OF_ERA), is(1404)); assertThat(birashk.get(PersianCalendar.MONTH_OF_YEAR), is(PersianMonth.FARVARDIN)); assertThat(birashk.getInt(PersianCalendar.DAY_OF_MONTH), is(1)); assertThat(birashk.getInt(PersianCalendar.DAY_OF_YEAR), is(1)); assertThat(birashk.get(PersianCalendar.DAY_OF_WEEK), is(pcal.getDayOfWeek())); assertThat(birashk.getMaximum(PersianCalendar.DAY_OF_MONTH), is(31)); assertThat(birashk.getMaximum(PersianCalendar.DAY_OF_YEAR), is(366));
Note: Only elements registered in the Persian calendar chronology are supported.
- Since:
- 3.33/4.28
- See Also:
PersianCalendar.getDate(PersianAlgorithm)
,PersianCalendar.getDate(ZonalOffset)
,PersianAlgorithm.attribute()
-
Method Summary
Modifier and TypeMethodDescriptionboolean
contains(ChronoElement<?> element)
Queries if the value for given chronological element can be accessed viaget(element)
.boolean
<V> V
get(ChronoElement<V> element)
Returns the partial value associated with given chronological element.int
getInt(ChronoElement<Integer> element)
Returns the partial value associated with given chronological element.<V> V
getMaximum(ChronoElement<V> element)
Yields the maximum value of given chronological element in the current context of this object.<V> V
getMinimum(ChronoElement<V> element)
Yields the minimum value of given chronological element in the current context of this object.If the underlying algorithm isPersianAlgorithm.ASTRONOMICAL
then this method will yield the timezone offset, usually Teheran Standard Time.int
hashCode()
boolean
This date can only have a timezone (offset) if the underlying algorithm isPersianAlgorithm.ASTRONOMICAL
.toString()
-
Method Details
-
contains
Description copied from interface:ChronoDisplay
Queries if the value for given chronological element can be accessed via
get(element)
.If the argument is missing then this method will yield
false
. Note: Elements which are not registered but define a suitable rule are also accessible.- Specified by:
contains
in interfaceChronoDisplay
- Parameters:
element
- chronological element to be asked (optional)- Returns:
true
if the element is registered or there is an element rule for evaluating the value elsefalse
- See Also:
ChronoDisplay.get(ChronoElement)
-
get
Description copied from interface:ChronoDisplay
Returns the partial value associated with given chronological element.
- Specified by:
get
in interfaceChronoDisplay
- Type Parameters:
V
- generic type of element value- Parameters:
element
- element which has the value- Returns:
- associated element value as object (never
null
) - See Also:
ChronoDisplay.contains(ChronoElement)
-
getInt
Description copied from interface:ChronoDisplay
Returns the partial value associated with given chronological element.
- Specified by:
getInt
in interfaceChronoDisplay
- Parameters:
element
- element which has the value- Returns:
- associated element value as int primitive or
Integer.MIN_VALUE
if not available - See Also:
ChronoDisplay.get(ChronoElement)
-
getMinimum
Description copied from interface:ChronoDisplay
Yields the minimum value of given chronological element in the current context of this object.
The definition of a minimum and a maximum does generally not imply that every intermediate value between minimum and maximum is valid in this context. For example in the timezone Europe/Berlin the hour [T02:00] will be invalid if switching to summer time.
In most cases the minimum value is not dependent on this context.
- Specified by:
getMinimum
in interfaceChronoDisplay
- Type Parameters:
V
- generic type of element value- Parameters:
element
- element whose minimum value is to be evaluated- Returns:
- minimum maybe context-dependent element value
- See Also:
ChronoElement.getDefaultMinimum()
,ChronoDisplay.getMaximum(ChronoElement)
-
getMaximum
Description copied from interface:ChronoDisplay
Yields the maximum value of given chronological element in the current context of this object.
Maximum values are different from minimum case often dependent on the context. An example is the element SECOND_OF_MINUTE whose maximum is normally
59
but can differ in UTC-context with leap seconds. Another more common example is the maximum of the element DAY_OF_MONTH (28-31) which is dependent on the month and year of this context (leap years!).Note: In timezone-related timestamps possible offset jumps inducing gaps on the local timeline will be conserved. That means that minimum and maximum do not guarantee a continuum of valid intermediate values.
- Specified by:
getMaximum
in interfaceChronoDisplay
- Type Parameters:
V
- generic type of element value- Parameters:
element
- element whose maximum value is to be evaluated- Returns:
- maximum maybe context-dependent element value
- See Also:
ChronoElement.getDefaultMaximum()
,ChronoDisplay.getMinimum(ChronoElement)
-
hasTimezone
public boolean hasTimezone()This date can only have a timezone (offset) if the underlying algorithm is
PersianAlgorithm.ASTRONOMICAL
.- Specified by:
hasTimezone
in interfaceChronoDisplay
- Returns:
- boolean
-
getTimezone
If the underlying algorithm is
PersianAlgorithm.ASTRONOMICAL
then this method will yield the timezone offset, usually Teheran Standard Time.- Specified by:
getTimezone
in interfaceChronoDisplay
- Returns:
- timezone offset
- Throws:
ChronoException
- if the algorithm is not astronomical- See Also:
ChronoDisplay.hasTimezone()
-
equals
-
hashCode
public int hashCode() -
toString
-