java.lang.Object | |||
↳ | org.joda.time.base.AbstractPeriod | ||
↳ | org.joda.time.base.BasePeriod | ||
↳ | org.joda.time.Period |
An immutable time period specifying a set of duration field values.
A time period is divided into a number of fields, such as hours and seconds. Which fields are supported is defined by the PeriodType class. The default is the standard period type, which supports years, months, weeks, days, hours, minutes, seconds and millis.
When this time period is added to an instant, the effect is of adding each field in turn.
As a result, this takes into account daylight savings time.
Adding a time period of 1 day to the day before daylight savings starts will only add
23 hours rather than 24 to ensure that the time remains the same.
If this is not the behaviour you want, then see Duration
.
The definition of a period also affects the equals method. A period of 1 day is not equal to a period of 24 hours, nor 1 hour equal to 60 minutes. This is because periods represent an abstracted definition of a time period (eg. a day may not actually be 24 hours, it might be 23 or 25 at daylight savings boundary). To compare the actual duration of two periods, convert both to durations using toDuration, an operation that emphasises that the result may differ according to the date you choose.
Period is thread-safe and immutable, provided that the PeriodType is as well. All standard PeriodType classes supplied are thread-safe and immutable.
Fields | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
ZERO | A period of zero length and standard period type. |
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Creates a new empty period with the standard set of fields.
| |||||||||||
Create a period from a set of field values using the standard set of fields.
| |||||||||||
Create a period from a set of field values using the standard set of fields.
| |||||||||||
Create a period from a set of field values.
| |||||||||||
Creates a period from the given millisecond duration using the standard
set of fields.
| |||||||||||
Creates a period from the given millisecond duration.
| |||||||||||
Creates a period from the given millisecond duration using the standard
set of fields.
| |||||||||||
Creates a period from the given millisecond duration.
| |||||||||||
Creates a period from the given interval endpoints using the standard
set of fields.
| |||||||||||
Creates a period from the given interval endpoints.
| |||||||||||
Creates a period from the given interval endpoints using the standard
set of fields.
| |||||||||||
Creates a period from the given interval endpoints.
| |||||||||||
Creates a period from the given interval endpoints using the standard
set of fields.
| |||||||||||
Creates a period from the given interval endpoints.
| |||||||||||
Creates a period from two partially specified times.
| |||||||||||
Creates a period from two partially specified times.
| |||||||||||
Creates a period from the given start point and the duration.
| |||||||||||
Creates a period from the given start point and the duration.
| |||||||||||
Creates a period from the given duration and end point.
| |||||||||||
Creates a period from the given duration and end point.
| |||||||||||
Creates a period by converting or copying from another object.
| |||||||||||
Creates a period by converting or copying from another object.
| |||||||||||
Creates a period by converting or copying from another object.
| |||||||||||
Creates a period by converting or copying from another object.
|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Create a period with a specified number of days.
| |||||||||||
Creates a period from two partially specified times, calculating
by field difference.
| |||||||||||
Gets the days field part of the period.
| |||||||||||
Gets the hours field part of the period.
| |||||||||||
Gets the millis field part of the period.
| |||||||||||
Gets the minutes field part of the period.
| |||||||||||
Gets the months field part of the period.
| |||||||||||
Gets the seconds field part of the period.
| |||||||||||
Gets the weeks field part of the period.
| |||||||||||
Gets the years field part of the period.
| |||||||||||
Create a period with a specified number of hours.
| |||||||||||
Create a period with a specified number of millis.
| |||||||||||
Returns a new period with the specified period subtracted.
| |||||||||||
Returns a new period minus the specified number of days taken away.
| |||||||||||
Returns a new period minus the specified number of hours taken away.
| |||||||||||
Returns a new period minus the specified number of millis taken away.
| |||||||||||
Returns a new period minus the specified number of minutes taken away.
| |||||||||||
Returns a new period minus the specified number of months taken away.
| |||||||||||
Returns a new period minus the specified number of seconds taken away.
| |||||||||||
Returns a new period minus the specified number of weeks taken away.
| |||||||||||
Returns a new period with the specified number of years taken away.
| |||||||||||
Create a period with a specified number of minutes.
| |||||||||||
Create a period with a specified number of months.
| |||||||||||
Normalizes this period using standard rules, assuming a 12 month year,
7 day week, 24 hour day, 60 minute hour and 60 second minute,
providing control over how the result is split into fields.
| |||||||||||
Normalizes this period using standard rules, assuming a 12 month year,
7 day week, 24 hour day, 60 minute hour and 60 second minute.
| |||||||||||
Returns a new period with the specified period added.
| |||||||||||
Returns a new period plus the specified number of days added.
| |||||||||||
Returns a new period plus the specified number of hours added.
| |||||||||||
Returns a new period plus the specified number of millis added.
| |||||||||||
Returns a new period plus the specified number of minutes added.
| |||||||||||
Returns a new period plus the specified number of months added.
| |||||||||||
Returns a new period plus the specified number of seconds added.
| |||||||||||
Returns a new period plus the specified number of weeks added.
| |||||||||||
Returns a new period with the specified number of years added.
| |||||||||||
Create a period with a specified number of seconds.
| |||||||||||
Get this period as an immutable
Period object
by returning this . | |||||||||||
Converts this period to a period in days assuming a
7 day week, 24 hour day, 60 minute hour and 60 second minute.
| |||||||||||
Converts this period to a duration assuming a
7 day week, 24 hour day, 60 minute hour and 60 second minute.
| |||||||||||
Converts this period to a period in hours assuming a
7 day week, 24 hour day, 60 minute hour and 60 second minute.
| |||||||||||
Converts this period to a period in minutes assuming a
7 day week, 24 hour day, 60 minute hour and 60 second minute.
| |||||||||||
Converts this period to a period in seconds assuming a
7 day week, 24 hour day, 60 minute hour and 60 second minute.
| |||||||||||
Converts this period to a period in weeks assuming a
7 day week, 24 hour day, 60 minute hour and 60 second minute.
| |||||||||||
Create a period with a specified number of weeks.
| |||||||||||
Returns a new period with the specified number of days.
| |||||||||||
Creates a new Period instance with the specified field set to a new value.
| |||||||||||
Creates a new Period instance with the valueToAdd added to the specified field.
| |||||||||||
Creates a new Period instance with the fields from the specified period
copied on top of those from this period.
| |||||||||||
Returns a new period with the specified number of hours.
| |||||||||||
Returns a new period with the specified number of millis.
| |||||||||||
Returns a new period with the specified number of minutes.
| |||||||||||
Returns a new period with the specified number of months.
| |||||||||||
Creates a new Period instance with the same field values but
different PeriodType.
| |||||||||||
Returns a new period with the specified number of seconds.
| |||||||||||
Returns a new period with the specified number of weeks.
| |||||||||||
Returns a new period with the specified number of years.
| |||||||||||
Create a period with a specified number of years.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
org.joda.time.base.BasePeriod
| |||||||||||
From class
org.joda.time.base.AbstractPeriod
| |||||||||||
From class
java.lang.Object
| |||||||||||
From interface
org.joda.time.ReadablePeriod
|
Creates a new empty period with the standard set of fields.
One way to initialise a period is as follows:
Period = new Period().withYears(6).withMonths(3).withSeconds(23);Bear in mind that this creates four period instances in total, three of which are immediately discarded. The alterative is more efficient, but less readable:
Period = new Period(6, 3, 0, 0, 0, 0, 23, 0);The following is also slightly less wasteful:
Period = Period.years(6).withMonths(3).withSeconds(23);
Create a period from a set of field values using the standard set of fields. Note that the parameters specify the time fields hours, minutes, seconds and millis, not the date fields.
hours | amount of hours in this period |
---|---|
minutes | amount of minutes in this period |
seconds | amount of seconds in this period |
millis | amount of milliseconds in this period |
Create a period from a set of field values using the standard set of fields.
years | amount of years in this period |
---|---|
months | amount of months in this period |
weeks | amount of weeks in this period |
days | amount of days in this period |
hours | amount of hours in this period |
minutes | amount of minutes in this period |
seconds | amount of seconds in this period |
millis | amount of milliseconds in this period |
Create a period from a set of field values.
There is usually little need to use this constructor. The period type is used primarily to define how to split an interval into a period. As this constructor already is split, the period type does no real work.
years | amount of years in this period, which must be zero if unsupported |
---|---|
months | amount of months in this period, which must be zero if unsupported |
weeks | amount of weeks in this period, which must be zero if unsupported |
days | amount of days in this period, which must be zero if unsupported |
hours | amount of hours in this period, which must be zero if unsupported |
minutes | amount of minutes in this period, which must be zero if unsupported |
seconds | amount of seconds in this period, which must be zero if unsupported |
millis | amount of milliseconds in this period, which must be zero if unsupported |
type | which set of fields this period supports, null means AllType |
IllegalArgumentException | if an unsupported field's value is non-zero |
---|
Creates a period from the given millisecond duration using the standard set of fields.
Only precise fields in the period type will be used. For the standard period type this is the time fields only. Thus the year, month, week and day fields will not be populated.
If the duration is small, less than one day, then this method will perform as you might expect and split the fields evenly.
If the duration is larger than one day then all the remaining duration will be stored in the largest available precise field, hours in this case.
For example, a duration equal to (365 + 60 + 5) days will be converted to ((365 + 60 + 5) * 24) hours by this constructor.
For more control over the conversion process, you have two options:
Interval
, and from there obtain the period
duration | the duration, in milliseconds |
---|
Creates a period from the given millisecond duration.
Only precise fields in the period type will be used. Imprecise fields will not be populated.
If the duration is small then this method will perform as you might expect and split the fields evenly.
If the duration is large then all the remaining duration will be stored in the largest available precise field. For details as to which fields are precise, review the period type javadoc.
duration | the duration, in milliseconds |
---|---|
type | which set of fields this period supports, null means standard |
Creates a period from the given millisecond duration using the standard set of fields.
Only precise fields in the period type will be used. Imprecise fields will not be populated.
If the duration is small then this method will perform as you might expect and split the fields evenly.
If the duration is large then all the remaining duration will be stored in the largest available precise field. For details as to which fields are precise, review the period type javadoc.
duration | the duration, in milliseconds |
---|---|
chronology | the chronology to use to split the duration, null means ISO default |
Creates a period from the given millisecond duration.
Only precise fields in the period type will be used. Imprecise fields will not be populated.
If the duration is small then this method will perform as you might expect and split the fields evenly.
If the duration is large then all the remaining duration will be stored in the largest available precise field. For details as to which fields are precise, review the period type javadoc.
duration | the duration, in milliseconds |
---|---|
type | which set of fields this period supports, null means standard |
chronology | the chronology to use to split the duration, null means ISO default |
Creates a period from the given interval endpoints using the standard set of fields.
startInstant | interval start, in milliseconds |
---|---|
endInstant | interval end, in milliseconds |
Creates a period from the given interval endpoints.
startInstant | interval start, in milliseconds |
---|---|
endInstant | interval end, in milliseconds |
type | which set of fields this period supports, null means standard |
Creates a period from the given interval endpoints using the standard set of fields.
startInstant | interval start, in milliseconds |
---|---|
endInstant | interval end, in milliseconds |
chrono | the chronology to use, null means ISO in default zone |
Creates a period from the given interval endpoints.
startInstant | interval start, in milliseconds |
---|---|
endInstant | interval end, in milliseconds |
type | which set of fields this period supports, null means standard |
chrono | the chronology to use, null means ISO in default zone |
Creates a period from the given interval endpoints using the standard set of fields.
startInstant | interval start, null means now |
---|---|
endInstant | interval end, null means now |
Creates a period from the given interval endpoints.
startInstant | interval start, null means now |
---|---|
endInstant | interval end, null means now |
type | which set of fields this period supports, null means standard |
Creates a period from two partially specified times.
The two partials must contain the same fields, thus you can specify
two LocalDate
objects, or two LocalTime
objects,
but not one of each.
As these are Partial objects, time zones have no effect on the result.
The two partials must also both be contiguous - see
isContiguous(ReadablePartial)
for a definition.
Both LocalDate
and LocalTime
are contiguous.
An alternative way of constructing a Period from two Partials
is fieldDifference(ReadablePartial, ReadablePartial)
.
That method handles all kinds of partials.
start | the start of the period, must not be null |
---|---|
end | the end of the period, must not be null |
IllegalArgumentException | if the partials are null or invalid |
---|
Creates a period from two partially specified times.
The two partials must contain the same fields, thus you can specify
two LocalDate
objects, or two LocalTime
objects,
but not one of each.
As these are Partial objects, time zones have no effect on the result.
The two partials must also both be contiguous - see
isContiguous(ReadablePartial)
for a definition.
Both LocalDate
and LocalTime
are contiguous.
An alternative way of constructing a Period from two Partials
is fieldDifference(ReadablePartial, ReadablePartial)
.
That method handles all kinds of partials.
start | the start of the period, must not be null |
---|---|
end | the end of the period, must not be null |
type | which set of fields this period supports, null means standard |
IllegalArgumentException | if the partials are null or invalid |
---|
Creates a period from the given start point and the duration.
startInstant | the interval start, null means now |
---|---|
duration | the duration of the interval, null means zero-length |
Creates a period from the given start point and the duration.
startInstant | the interval start, null means now |
---|---|
duration | the duration of the interval, null means zero-length |
type | which set of fields this period supports, null means standard |
Creates a period from the given duration and end point.
duration | the duration of the interval, null means zero-length |
---|---|
endInstant | the interval end, null means now |
Creates a period from the given duration and end point.
duration | the duration of the interval, null means zero-length |
---|---|
endInstant | the interval end, null means now |
type | which set of fields this period supports, null means standard |
Creates a period by converting or copying from another object.
The recognised object types are defined in
ConverterManager
and
include ReadablePeriod, ReadableInterval and String.
The String formats are described by standard()
.
period | period to convert |
---|
IllegalArgumentException | if period is invalid |
---|---|
UnsupportedOperationException | if an unsupported field's value is non-zero |
Creates a period by converting or copying from another object.
The recognised object types are defined in
ConverterManager
and
include ReadablePeriod, ReadableInterval and String.
The String formats are described by standard()
.
period | period to convert |
---|---|
type | which set of fields this period supports, null means use converter |
IllegalArgumentException | if period is invalid |
---|---|
UnsupportedOperationException | if an unsupported field's value is non-zero |
Creates a period by converting or copying from another object.
The recognised object types are defined in
ConverterManager
and
include ReadablePeriod, ReadableInterval and String.
The String formats are described by standard()
.
period | period to convert |
---|---|
chrono | the chronology to use, null means ISO in default zone |
IllegalArgumentException | if period is invalid |
---|---|
UnsupportedOperationException | if an unsupported field's value is non-zero |
Creates a period by converting or copying from another object.
The recognised object types are defined in
ConverterManager
and
include ReadablePeriod, ReadableInterval and String.
The String formats are described by standard()
.
period | period to convert |
---|---|
type | which set of fields this period supports, null means use converter |
chrono | the chronology to use, null means ISO in default zone |
IllegalArgumentException | if period is invalid |
---|---|
UnsupportedOperationException | if an unsupported field's value is non-zero |
Create a period with a specified number of days.
The standard period type is used, thus you can add other fields such
as months or weeks using the withXxx()
methods.
For example, Period.days(2).withHours(6);
If you want a day-based period that cannot have other fields added,
then you should consider using Days
.
days | the amount of days in this period |
---|
Creates a period from two partially specified times, calculating by field difference.
The two partials must contain the same fields, thus you can specify
two LocalDate
objects, or two LocalTime
objects,
but not one of each. Also, the partial may not contain overlapping
fields, such as dayOfWeek and dayOfMonth.
Calculation by field difference works by extracting the difference one field at a time and not wrapping into other fields. Thus 2005-06-09/2007-04-12 will yield P1Y-2M3D.
For example, you have an event that always runs from the 27th of each month to the 2nd of the next month. If you calculate this period using a standard constructor, then you will get between P3D and P6D depending on the month. If you use this method, then you will get P1M-25D. This field-difference based period can be successfully applied to each month of the year to obtain the correct end date for a given start date.
start | the start of the period, must not be null |
---|---|
end | the end of the period, must not be null |
IllegalArgumentException | if the partials are null or invalid |
---|
Gets the days field part of the period.
Gets the hours field part of the period.
Gets the millis field part of the period.
Gets the minutes field part of the period.
Gets the months field part of the period.
Gets the seconds field part of the period.
Gets the weeks field part of the period.
Gets the years field part of the period.
Create a period with a specified number of hours.
The standard period type is used, thus you can add other fields such
as months or days using the withXxx()
methods.
For example, Period.hours(2).withMinutes(30);
If you want a hour-based period that cannot have other fields added,
then you should consider using Hours
.
hours | the amount of hours in this period |
---|
Create a period with a specified number of millis.
The standard period type is used, thus you can add other fields such
as days or hours using the withXxx()
methods.
For example, Period.millis(20).withSeconds(30);
millis | the amount of millis in this period |
---|
Returns a new period with the specified period subtracted.
Each field of the period is subtracted separately. Thus a period of
3 hours 30 minutes minus 2 hours 40 minutes will produce a result
of 1 hour and -10 minutes - see normalizedStandard()
.
If the period being added contains a non-zero amount for a field that is not supported in this period then an exception is thrown.
This period instance is immutable and unaffected by this method call.
period | the period to add, null adds zero and returns this |
---|
UnsupportedOperationException | if any field is not supported |
---|
Returns a new period minus the specified number of days taken away.
This period instance is immutable and unaffected by this method call.
days | the amount of days to take away, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period minus the specified number of hours taken away.
This period instance is immutable and unaffected by this method call.
hours | the amount of hours to take away, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period minus the specified number of millis taken away.
This period instance is immutable and unaffected by this method call.
millis | the amount of millis to take away, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period minus the specified number of minutes taken away.
This period instance is immutable and unaffected by this method call.
minutes | the amount of minutes to take away, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period minus the specified number of months taken away.
This period instance is immutable and unaffected by this method call.
months | the amount of months to take away, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period minus the specified number of seconds taken away.
This period instance is immutable and unaffected by this method call.
seconds | the amount of seconds to take away, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period minus the specified number of weeks taken away.
This period instance is immutable and unaffected by this method call.
weeks | the amount of weeks to take away, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period with the specified number of years taken away.
This period instance is immutable and unaffected by this method call.
years | the amount of years to take away, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Create a period with a specified number of minutes.
The standard period type is used, thus you can add other fields such
as days or hours using the withXxx()
methods.
For example, Period.minutes(2).withSeconds(30);
If you want a minute-based period that cannot have other fields added,
then you should consider using Minutes
.
minutes | the amount of minutes in this period |
---|
Create a period with a specified number of months.
The standard period type is used, thus you can add other fields such
as years or days using the withXxx()
methods.
For example, Period.months(2).withDays(6);
If you want a month-based period that cannot have other fields added,
then you should consider using Months
.
months | the amount of months in this period |
---|
Normalizes this period using standard rules, assuming a 12 month year, 7 day week, 24 hour day, 60 minute hour and 60 second minute, providing control over how the result is split into fields.
This method allows you to normalize a period. However to achieve this it makes the assumption that all years are 12 months, all weeks are 7 days, all days are 24 hours, all hours are 60 minutes and all minutes are 60 seconds. This is not true when daylight savings time is considered, and may also not be true for some chronologies. However, it is included as it is a useful operation for many applications and business rules.
If the period contains years or months, then the months will be normalized to be between 0 and 11. The days field and below will be normalized as necessary, however this will not overflow into the months field. Thus a period of 1 year 15 months will normalize to 2 years 3 months. But a period of 1 month 40 days will remain as 1 month 40 days.
The PeriodType parameter controls how the result is created. It allows
you to omit certain fields from the result if desired. For example,
you may not want the result to include weeks, in which case you pass
in PeriodType.yearMonthDayTime()
.
type | the period type of the new period, null means standard type |
---|
ArithmeticException | if any field is too large to be represented |
---|---|
UnsupportedOperationException | if this period contains non-zero years or months but the specified period type does not support them |
Normalizes this period using standard rules, assuming a 12 month year, 7 day week, 24 hour day, 60 minute hour and 60 second minute.
This method allows you to normalize a period. However to achieve this it makes the assumption that all years are 12 months, all weeks are 7 days, all days are 24 hours, all hours are 60 minutes and all minutes are 60 seconds. This is not true when daylight savings time is considered, and may also not be true for some chronologies. However, it is included as it is a useful operation for many applications and business rules.
If the period contains years or months, then the months will be normalized to be between 0 and 11. The days field and below will be normalized as necessary, however this will not overflow into the months field. Thus a period of 1 year 15 months will normalize to 2 years 3 months. But a period of 1 month 40 days will remain as 1 month 40 days.
The result will always have a PeriodType
of standard, thus
days will be grouped into weeks.
ArithmeticException | if any field is too large to be represented |
---|
Returns a new period with the specified period added.
Each field of the period is added separately. Thus a period of
2 hours 30 minutes plus 3 hours 40 minutes will produce a result
of 5 hours 70 minutes - see normalizedStandard()
.
If the period being added contains a non-zero amount for a field that is not supported in this period then an exception is thrown.
This period instance is immutable and unaffected by this method call.
period | the period to add, null adds zero and returns this |
---|
UnsupportedOperationException | if any field is not supported |
---|
Returns a new period plus the specified number of days added.
This period instance is immutable and unaffected by this method call.
days | the amount of days to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period plus the specified number of hours added.
This period instance is immutable and unaffected by this method call.
hours | the amount of hours to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period plus the specified number of millis added.
This period instance is immutable and unaffected by this method call.
millis | the amount of millis to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period plus the specified number of minutes added.
This period instance is immutable and unaffected by this method call.
minutes | the amount of minutes to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period plus the specified number of months added.
This period instance is immutable and unaffected by this method call.
months | the amount of months to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period plus the specified number of seconds added.
This period instance is immutable and unaffected by this method call.
seconds | the amount of seconds to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period plus the specified number of weeks added.
This period instance is immutable and unaffected by this method call.
weeks | the amount of weeks to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period with the specified number of years added.
This period instance is immutable and unaffected by this method call.
years | the amount of years to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Create a period with a specified number of seconds.
The standard period type is used, thus you can add other fields such
as days or hours using the withXxx()
methods.
For example, Period.seconds(2).withMillis(30);
If you want a second-based period that cannot have other fields added,
then you should consider using Seconds
.
seconds | the amount of seconds in this period |
---|
Get this period as an immutable Period
object
by returning this
.
this
Converts this period to a period in days assuming a 7 day week, 24 hour day, 60 minute hour and 60 second minute.
This method allows you to convert between different types of period. However to achieve this it makes the assumption that all weeks are 7 days, all days are 24 hours, all hours are 60 minutes and all minutes are 60 seconds. This is not true when daylight savings time is considered, and may also not be true for some unusual chronologies. However, it is included as it is a useful operation for many applications and business rules.
If the period contains years or months, an exception will be thrown.
UnsupportedOperationException | if the period contains years or months |
---|---|
ArithmeticException | if the number of days is too large to be represented |
Converts this period to a duration assuming a 7 day week, 24 hour day, 60 minute hour and 60 second minute.
This method allows you to convert from a period to a duration. However to achieve this it makes the assumption that all weeks are 7 days, all days are 24 hours, all hours are 60 minutes and all minutes are 60 seconds. This is not true when daylight savings time is considered, and may also not be true for some unusual chronologies. However, it is included as it is a useful operation for many applications and business rules.
If the period contains years or months, an exception will be thrown.
UnsupportedOperationException | if the period contains years or months |
---|
Converts this period to a period in hours assuming a 7 day week, 24 hour day, 60 minute hour and 60 second minute.
This method allows you to convert between different types of period. However to achieve this it makes the assumption that all weeks are 7 days, all days are 24 hours, all hours are 60 minutes and all minutes are 60 seconds. This is not true when daylight savings time is considered, and may also not be true for some unusual chronologies. However, it is included as it is a useful operation for many applications and business rules.
If the period contains years or months, an exception will be thrown.
UnsupportedOperationException | if the period contains years or months |
---|---|
ArithmeticException | if the number of hours is too large to be represented |
Converts this period to a period in minutes assuming a 7 day week, 24 hour day, 60 minute hour and 60 second minute.
This method allows you to convert between different types of period. However to achieve this it makes the assumption that all weeks are 7 days, all days are 24 hours, all hours are 60 minutes and all minutes are 60 seconds. This is not true when daylight savings time is considered, and may also not be true for some unusual chronologies. However, it is included as it is a useful operation for many applications and business rules.
If the period contains years or months, an exception will be thrown.
UnsupportedOperationException | if the period contains years or months |
---|---|
ArithmeticException | if the number of minutes is too large to be represented |
Converts this period to a period in seconds assuming a 7 day week, 24 hour day, 60 minute hour and 60 second minute.
This method allows you to convert between different types of period. However to achieve this it makes the assumption that all weeks are 7 days, all days are 24 hours, all hours are 60 minutes and all minutes are 60 seconds. This is not true when daylight savings time is considered, and may also not be true for some unusual chronologies. However, it is included as it is a useful operation for many applications and business rules.
If the period contains years or months, an exception will be thrown.
UnsupportedOperationException | if the period contains years or months |
---|---|
ArithmeticException | if the number of seconds is too large to be represented |
Converts this period to a period in weeks assuming a 7 day week, 24 hour day, 60 minute hour and 60 second minute.
This method allows you to convert between different types of period. However to achieve this it makes the assumption that all weeks are 7 days, all days are 24 hours, all hours are 60 minutes and all minutes are 60 seconds. This is not true when daylight savings time is considered, and may also not be true for some unusual chronologies. However, it is included as it is a useful operation for many applications and business rules.
If the period contains years or months, an exception will be thrown.
UnsupportedOperationException | if the period contains years or months |
---|---|
ArithmeticException | if the number of weeks is too large to be represented |
Create a period with a specified number of weeks.
The standard period type is used, thus you can add other fields such
as months or days using the withXxx()
methods.
For example, Period.weeks(2).withDays(6);
If you want a week-based period that cannot have other fields added,
then you should consider using Weeks
.
weeks | the amount of weeks in this period |
---|
Returns a new period with the specified number of days.
This period instance is immutable and unaffected by this method call.
days | the amount of days to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Creates a new Period instance with the specified field set to a new value.
This period instance is immutable and unaffected by this method call.
field | the field to set, not null |
---|---|
value | the value to set to |
IllegalArgumentException | if the field type is null or unsupported |
---|
Creates a new Period instance with the valueToAdd added to the specified field.
This period instance is immutable and unaffected by this method call.
field | the field to set, not null |
---|---|
value | the value to add |
IllegalArgumentException | if the field type is null or unsupported |
---|
Creates a new Period instance with the fields from the specified period copied on top of those from this period.
This period instance is immutable and unaffected by this method call.
period | the period to copy from, null ignored |
---|
IllegalArgumentException | if a field type is unsupported |
---|
Returns a new period with the specified number of hours.
This period instance is immutable and unaffected by this method call.
hours | the amount of hours to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period with the specified number of millis.
This period instance is immutable and unaffected by this method call.
millis | the amount of millis to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period with the specified number of minutes.
This period instance is immutable and unaffected by this method call.
minutes | the amount of minutes to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period with the specified number of months.
This period instance is immutable and unaffected by this method call.
months | the amount of months to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Creates a new Period instance with the same field values but different PeriodType.
This period instance is immutable and unaffected by this method call.
type | the period type to use, null means standard |
---|
IllegalArgumentException | if the new period won't accept all of the current fields |
---|
Returns a new period with the specified number of seconds.
This period instance is immutable and unaffected by this method call.
seconds | the amount of seconds to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period with the specified number of weeks.
This period instance is immutable and unaffected by this method call.
weeks | the amount of weeks to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Returns a new period with the specified number of years.
This period instance is immutable and unaffected by this method call.
years | the amount of years to add, may be negative |
---|
UnsupportedOperationException | if the field is not supported |
---|
Create a period with a specified number of years.
The standard period type is used, thus you can add other fields such
as months or days using the withXxx()
methods.
For example, Period.years(2).withMonths(6);
If you want a year-based period that cannot have other fields added,
then you should consider using Years
.
years | the amount of years in this period |
---|