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 TypeMethodDescriptionbooleancontains(ChronoElement<?> element)Queries if the value for given chronological element can be accessed viaget(element).boolean<V> Vget(ChronoElement<V> element)Returns the partial value associated with given chronological element.intgetInt(ChronoElement<Integer> element)Returns the partial value associated with given chronological element.<V> VgetMaximum(ChronoElement<V> element)Yields the maximum value of given chronological element in the current context of this object.<V> VgetMinimum(ChronoElement<V> element)Yields the minimum value of given chronological element in the current context of this object.If the underlying algorithm isPersianAlgorithm.ASTRONOMICALthen this method will yield the timezone offset, usually Teheran Standard Time.inthashCode()booleanThis date can only have a timezone (offset) if the underlying algorithm isPersianAlgorithm.ASTRONOMICAL.toString()
-
Method Details
-
contains
Description copied from interface:ChronoDisplayQueries 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:
containsin interfaceChronoDisplay- Parameters:
element- chronological element to be asked (optional)- Returns:
trueif 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:ChronoDisplayReturns the partial value associated with given chronological element.
- Specified by:
getin 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:ChronoDisplayReturns the partial value associated with given chronological element.
- Specified by:
getIntin interfaceChronoDisplay- Parameters:
element- element which has the value- Returns:
- associated element value as int primitive or
Integer.MIN_VALUEif not available - See Also:
ChronoDisplay.get(ChronoElement)
-
getMinimum
Description copied from interface:ChronoDisplayYields 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:
getMinimumin 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:ChronoDisplayYields 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
59but 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:
getMaximumin 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:
hasTimezonein interfaceChronoDisplay- Returns:
- boolean
-
getTimezone
If the underlying algorithm is
PersianAlgorithm.ASTRONOMICALthen this method will yield the timezone offset, usually Teheran Standard Time.- Specified by:
getTimezonein interfaceChronoDisplay- Returns:
- timezone offset
- Throws:
ChronoException- if the algorithm is not astronomical- See Also:
ChronoDisplay.hasTimezone()
-
equals
-
hashCode
public int hashCode() -
toString
-