Interface DateTime
- All Superinterfaces:
Comparable<DateTime>, DateTime, OsidPrimitive, OsidPrimitive, Serializable
The DateTime interface defines a date and/or time. This interface provides a very broad range of dates, describes more or less precision, and/or conveys an uncertainty. A number of convenience methods for retrieving time elements are available but only those methods covered by the specified granularity are valid.
A typical example is describing a day where the time isn't known, and the event did not occur at midnight.
getMillennium() == 2 getCentury() == 18 getYear() == 1776 getMonth() == 7 getDay() == 4 getHour() == 0 getGranularity() == DateTimeResolution.DAY definesUncertainty() == false
Another example showing that the time is probably 1pm but could have been as late as 3pm or early as noon.
getMillennium() == 3 getCentury() == 21 getYear() == 2008 getMonth() == 3 getDay() == 17 getHour() == 13 getMinute() == 0 getGranularity() == TimeResolution.MINUTE definesUncertainty() == true getUncertaintyGranularity() == DateTimeResolution.HOUR getUncertaintyMinus() == 1 getUncertaintyPlus == 2
An example marking the birth of the universe. 13.73 billion years +/- 120 million years. The granularity suggests that no more resolution than one million years can be inferred from the "clock", making errors in the exact number of millennia insignificant.
getEpoch() == -13,730 getMillennium() == 0 getCentury() == 0 getYear() == 0 getGranularity() == TimeResolution.EPOCH definesUncertainty() == true getUncertaintyGranularity() == DateTimeResolution.EPOCH getUncertaintyMinus() == 120 getUncertaintyPlus == 120
-
Method Summary
Modifier and TypeMethodDescriptionbooleanTests if uncertainty is defined for this time.longgetAeon()Gets the aeon starting from 1.longGets the number of attoseconds of the femtoseconds 0-999.Gets the calendar type.longGets the century starting from 1.longgetDay()Gets the day of the month starting from 1.longgetEpoch()Gets the epoch starting from 1.longGets the number of femtoseconds of the picosecond 0-999.Gets the granularity of this time.longIf the granularity of the time equalsgetGranularity(), then the multiplier is 1.longgetHour()Gets the hour of the day 0-23.longGets the number of microquectoseconds of the milliquectosecond 0-999.longGets the number of microseconds of the second 0-999.longGets the millennium starting from 1.longGets the number of milliquectoseconds of the quectosecond 0-999.longGets the number of milliseconds in this second 0-999.longGets the minute of the hour 0-59.longgetMonth()Gets the month number starting from 1.longGets the number of nanoseconds of the microsecond 0-999.longGets the number of picoseconds of the nanosecond 0-999.longGets the number of planckseconds of the microquectosecond.longGets the number of quectoseconds of the rontosecond 0-999.longGets the number of rontoseconds of the yoctosecond 0-999.longGets the second of the minute 0-59.Gets the time type.longGets the uncertainty of this time in the negative direction.longGets the uncertainty of this time in the positive direction.Gets the units of the uncertainty.longgetYear()Gets the year starting from 1.longGets the number of yoctoseconds of the picosecond 0-999.longGets the number of zeptoseconds of the attosecond 0-999.booleanTests if the uncertainty is inclusive of all dates.Methods inherited from interface DateTime
compareTo, denormalize, equals, hashCode, isExclusive, isGreater, isInclusive, isLessModifier and TypeMethodDescriptionintCompares this datetime with the specifiedDateTimeto determine the natural order.Returns an interval based on this DateTime derived by its granularity and uncertainty.booleanDetermines if the givenDateTimeis equal to this one.inthashCode()Returns a hash code value for thisDateTimebased on the types, values, granularity and uncertainties.booleanisExclusive(DateTime datetime) Tests if the range of this DateTime, as specified by its granularity and uncertainty, does not overlap the given DateTime.booleanTests if this DateTime is greater than the given DateTime.booleanisInclusive(DateTime datetime) Tests if the range of this DateTime, as specified by its granularity and uncertainty, includes the given DateTime ranged by its grabularity and uncertainty.booleanTests if this DateTime is less than the given DateTime.Methods inherited from interface OsidPrimitive
toString
-
Method Details
-
getCalendarType
Type getCalendarType()Gets the calendar type.- Returns:
- the calendar type
- Compliance:
mandatory- This method must be implemented.
-
getAeon
long getAeon()Gets the aeon starting from 1. An aeon is 1B years.- Returns:
- the aeon
- Compliance:
mandatory- This method must be implemented.
-
getEpoch
long getEpoch()Gets the epoch starting from 1. An epoch is 1M years.- Returns:
- the eposh
- Compliance:
mandatory- This method must be implemented.
-
getMillennium
long getMillennium()Gets the millennium starting from 1. A millenium is 1,000 years.- Returns:
- the millennium
- Compliance:
mandatory- This method must be implemented.
-
getCentury
long getCentury()Gets the century starting from 1.- Returns:
- the century
- Compliance:
mandatory- This method must be implemented.
-
getYear
long getYear()Gets the year starting from 1.- Returns:
- the year
- Compliance:
mandatory- This method must be implemented.
-
getMonth
long getMonth()Gets the month number starting from 1.- Returns:
- the month
- Compliance:
mandatory- This method must be implemented.
-
getDay
long getDay()Gets the day of the month starting from 1.- Returns:
- the day of the month
- Compliance:
mandatory- This method must be implemented.
-
getTimeType
Type getTimeType()Gets the time type.- Returns:
- the time type
- Compliance:
mandatory- This method must be implemented.
-
getHour
long getHour()Gets the hour of the day 0-23.- Returns:
- the hour of the day
- Compliance:
mandatory- This method must be implemented.
-
getMinute
long getMinute()Gets the minute of the hour 0-59.- Returns:
- the minute of the hour
- Compliance:
mandatory- This method must be implemented.
-
getSecond
long getSecond()Gets the second of the minute 0-59.- Returns:
- the second of the minute
- Compliance:
mandatory- This method must be implemented.
-
getMilliseconds
long getMilliseconds()Gets the number of milliseconds in this second 0-999. A millisecond is one thousandth (1e-3) of a second.- Returns:
- the milliseconds of the second
- Compliance:
mandatory- This method must be implemented.
-
getMicroseconds
long getMicroseconds()Gets the number of microseconds of the second 0-999. A microsecond is one millionth (1e-6) of a second.- Returns:
- the micrseconds of the millisecond
- Compliance:
mandatory- This method must be implemented.
-
getNanoseconds
long getNanoseconds()Gets the number of nanoseconds of the microsecond 0-999. A nanosecond is one billionth (1e-9) of a second.- Returns:
- the nanoseconds of the microsecond
- Compliance:
mandatory- This method must be implemented.
-
getPicoseconds
long getPicoseconds()Gets the number of picoseconds of the nanosecond 0-999. A picosecond is one trillionth (1e-12) of a second.- Returns:
- the picoseconds of the nanosecond
- Compliance:
mandatory- This method must be implemented.
-
getFemtoseconds
long getFemtoseconds()Gets the number of femtoseconds of the picosecond 0-999. A femtosecond is one quadrillionth (1e-15) of a second.- Returns:
- the femtoseconds of the picosecond
- Compliance:
mandatory- This method must be implemented.
-
getAttoseconds
long getAttoseconds()Gets the number of attoseconds of the femtoseconds 0-999. An attosecond is one quintillionth (1e-18) of a second.- Returns:
- the attoseconds of the femtosecond
- Compliance:
mandatory- This method must be implemented.
-
getZeptoseconds
long getZeptoseconds()Gets the number of zeptoseconds of the attosecond 0-999. A zeptosecond is one sextillionth (1e-21) of a second.- Returns:
- the zeptoseconds of the attosecond
- Compliance:
mandatory- This method must be implemented.
-
getYoctoseconds
long getYoctoseconds()Gets the number of yoctoseconds of the picosecond 0-999. A yoctosecond is one septillionth (1e-24) of a second. This is getting quite small.- Returns:
- the yoctoseconds of the picosecond
- Compliance:
mandatory- This method must be implemented.
-
getRontoseconds
long getRontoseconds()Gets the number of rontoseconds of the yoctosecond 0-999. A rontosecond is one octillionth (1e-27) of a second.- Returns:
- the rontoseconds of the yoctosecond
- Compliance:
mandatory- This method must be implemented.
-
getQuectoseconds
long getQuectoseconds()Gets the number of quectoseconds of the rontosecond 0-999. A quectosecond is one nonillionth (1e-30) of a second.- Returns:
- the quectoseconds of the rontoseconds
- Compliance:
mandatory- This method must be implemented.
-
getMilliquectoseconds
long getMilliquectoseconds()Gets the number of milliquectoseconds of the quectosecond 0-999. A milliquectosecond is one decillionth (1e-33) of a second.- Returns:
- the milliquectoseconds of the quectosecond
- Compliance:
mandatory- This method must be implemented.
-
getMicroquectoseconds
long getMicroquectoseconds()Gets the number of microquectoseconds of the milliquectosecond 0-999. A microquectosecond is one undecillionth (1e-36) of a second.- Returns:
- the microquectoseconds of the milliquectosecond
- Compliance:
mandatory- This method must be implemented.
-
getPlanckseconds
long getPlanckseconds()Gets the number of planckseconds of the microquectosecond. A plancksecond is 53.91247 quattuordecillionths (5.391247e-44) of a second.- Returns:
- the plancks of the microquectosecond
- Compliance:
mandatory- This method must be implemented.
-
getGranularity
DateTimeResolution getGranularity()Gets the granularity of this time. The granularity indicates the resolution of the clock (the tick). More precision than what is specified in this method cannot be inferred from the available data.- Returns:
- granularity
- Compliance:
mandatory- This method must be implemented.
-
getGranularityMultiplier
long getGranularityMultiplier()If the granularity of the time equalsgetGranularity(), then the multiplier is 1. This method may return a different number when the granularity differs from one of the defined resolutions.- Returns:
- granularity multiplier
- Compliance:
mandatory- This method must be implemented.
-
definesUncertainty
boolean definesUncertainty()Tests if uncertainty is defined for this time.- Returns:
trueif uncertainty is defined,falseotherwise- Compliance:
mandatory- This method must be implemented.
-
getUncertaintyUnits
DateTimeResolution getUncertaintyUnits()Gets the units of the uncertainty.- Returns:
- units of the uncertainty
- Throws:
IllegalStateException-definesUncertainty()isfalse- Compliance:
mandatory- This method must be implemented.
-
getUncertaintyMinus
long getUncertaintyMinus()Gets the uncertainty of this time in the negative direction.- Returns:
- the uncertainty under this value
- Throws:
IllegalStateException-definesUncertainty()isfalse- Compliance:
mandatory- This method must be implemented.
-
getUncertaintyPlus
long getUncertaintyPlus()Gets the uncertainty of this time in the positive direction.- Returns:
- the uncertainty over this value
- Throws:
IllegalStateException-definesUncertainty()isfalse- Compliance:
mandatory- This method must be implemented.
-
isUncertaintyDateInclusive
boolean isUncertaintyDateInclusive()Tests if the uncertainty is inclusive of all dates. An inclusive uncertainty includes the entire range specified by the uncertainty units e.g. +/- 1 year includes all of the months and days within that interval. A non-inclusive uncertainty would mean the year is uncertain but the month and day is certain.- Returns:
trueif the uncertainty includes all dates,falseotherwise- Throws:
IllegalStateException-definesUncertainty()isfalse- Compliance:
mandatory- This method must be implemented.
-