xtd - Reference Guide 0.2.0
xtd::time_zone_info::transition_time Class Reference

#include <time_zone_info.h>

Definition

Provides information about a specific time change, such as the change from daylight saving time to standard time or vice versa, in a particular time zone.

class transition_time : public xtd::iequatable<transition_time>, public xtd::object
Inheritance
xtd::objectxtd::time_zone_info::transition_time
Implements
xtd::iequatable <>
Namespace
xtd
Library
xtd.core
Remarks
You can use the xtx::time_zone_info::transition_time structure to indicate when a transition from standard time to daylight saving time, or from daylight saving time back to standard time, occurs. This structure supports both fixed-date rules and floating-date rules. Use fixed-date rules for time transitions that occur on a specific day of a specific month (such as 2:00 A.M. on November 3). Use floating-date rules for time transitions that occur on a specific day of a specific week of a specific month (such as 2:00 A.M. on the first Sunday of November).
The following table compares the properties used in fixed-date and floating-date transitions:
Month Week Day Time
Fixed-date rule xtd::time_zone_info::transition_time::month N/A xtd::time_zone_info::transition_time::day xtd::time_zone_info::transition_time::time_of_day
Floating-date rule xtd::time_zone_info::transition_time::month xtd::time_zone_info::transition_time::week xtd::time_zone_info::transition_time::day_of_week xtd::time_zone_info::transition_time::time_of_day
For both fixed-date and floating-date transitions, the xtd::time_zone_info::transition_time::time_of_day property gets the time at which the time change occurs. For transitions from standard to daylight saving time, this is the time zone's standard time value. For transitions from daylight saving to standard time, this is the time zone's daylight saving time value. This is a xtd::date_time value whose date component is ignored; its year, month, and day value must always equal 1.
Note
An instance of the xtd::time_zone_info::transition_time structure is immutable. Once an object has been created, its values cannot be modified.
Remarks
A xtd::time_zone_info::transition_time object can be created by calling the static xtd::time_zone_info::transition_time::create_fixed_date_rule and xtd::time_zone_info::transition_time::create_floating_date_rule methods to create a fixed or floating-date rule, respectively. The starting and ending xtd::time_zone_info::transition_time objects are then supplied as parameters to the xtd::time_zone_info::adjustment_rule::create_adjustment_rule method to create a new adjustment rule that includes this transition time information.
The xtd::time_zone_info::transition_time::daylight_transition_start and xtd::time_zone_info::transition_time::daylight_transition_end properties of an xtd::time_zone_info::adjustment_rule object return a xtd::time_zone_info::transition_time object.

Properties

uint32_t day () const noexcept
 Gets the day on which the time change occurs. More...
 
xtd::day_of_week day_of_week () const noexcept
 Gets the day of the week on which the time change occurs. More...
 
bool is_fixed_rule () const noexcept
 Gets a value indicating whether the time change occurs at a fixed date and time (such as November 1) or a floating date and time (such as the last Sunday of October). More...
 
uint32_t month () const noexcept
 Gets the month in which the time change occurs. More...
 
xtd::date_time time_of_day () const noexcept
 Gets the hour, minute, and second at which the time change occurs. More...
 
uint32_t week () const noexcept
 Gets the week of the month in which a time change occurs. More...
 

Methods

bool equals (const transition_time &tt) const noexcept override
 
bool equals (const object &obj) const noexcept override
 Determines whether the specified object is equal to the current object. More...
 
static transition_time create_fixed_date_rule (date_time time_of_day, uint32_t month, uint32_t day)
 Defines a time change that uses a fixed-date rule (that is, a time change that occurs on a specific day of a specific month). More...
 
static transition_time create_floating_date_rule (date_time time_of_day, uint32_t month, uint32_t week, xtd::day_of_week day_of_week)
 Defines a time change that uses a floating-date rule (that is, a time change that occurs on a specific day of a specific week of a specific month). More...
 

Additional Inherited Members

- Public Member Functions inherited from xtd::iequatable< transition_time >
virtual bool equals (const transition_time &) const noexcept=0
 Indicates whether the current object is equal to another object of the same type. More...
 
- Public Member Functions inherited from xtd::object
 object ()=default
 Create a new instance of the ultimate base class object. More...
 
virtual size_t get_hash_code () const noexcept
 Serves as a hash function for a particular type. More...
 
template<typename object_t >
std::unique_ptr< object_t > memberwise_clone () const
 Gets the type of the current instance. More...
 
virtual xtd::ustring to_string () const noexcept
 Returns a sxd::ustring that represents the current object. More...
 
- Static Public Member Functions inherited from xtd::object
static bool equals (const object &object_a, const object &object_b) noexcept
 Determines whether the specified object instances are considered equal. More...
 
static bool reference_equals (const object &object_a, const object &object_b) noexcept
 Determines whether the specified object instances are the same instance. More...
 

Member Function Documentation

◆ create_fixed_date_rule()

static transition_time xtd::time_zone_info::transition_time::create_fixed_date_rule ( date_time  time_of_day,
uint32_t  month,
uint32_t  day 
)
inlinestatic

Defines a time change that uses a fixed-date rule (that is, a time change that occurs on a specific day of a specific month).

Parameters
time_of_dayThe time at which the time change occurs. This parameter corresponds to the xtd::time_zone_info::transition_time::ttime_of_day property.
monthThe month in which the time change occurs. This parameter corresponds to the xtd::time_zone_info::transition_time::month property.
dayThe day of the month on which the time change occurs. This parameter corresponds to the xtd::time_zone_info::transition_time::day property.
Returns
Data about the time change.
Exceptions
xtd::argument_exceptionThe time_of_day parameter has a non-default date component.
-or-
The time_of_day parameter's Kind property is not unspecified.
-or-
The time_of_day parameter does not represent a whole number of milliseconds.
xtd::argument_out_of_range_exceptionThe month parameter is less than 1 or greater than 12.
-or-
The day parameter is less than 1 or greater than 31.
Remarks
This method creates a fixed-date rule (that is, a time change that occurs on a specific day of a specific month). For example, a time change that always occurs on October 28 follows a fixed-date rule.
For transitions from standard time to daylight saving time, the timeOfDay argument represents the time of the transition in the time zone's standard time. For transitions from daylight saving time to standard time, it represents the time of the transition in the time zone's daylight saving time. Note that this is a xtd::date_time value whose year, month, and date values must all equal 1.

◆ create_floating_date_rule()

static transition_time xtd::time_zone_info::transition_time::create_floating_date_rule ( date_time  time_of_day,
uint32_t  month,
uint32_t  week,
xtd::day_of_week  day_of_week 
)
inlinestatic

Defines a time change that uses a floating-date rule (that is, a time change that occurs on a specific day of a specific week of a specific month).

Parameters
time_of_dayThe time at which the time change occurs. This parameter corresponds to the xtd::time_zone_info::transition_time::ttime_of_day property.
monthThe month in which the time change occurs. This parameter corresponds to the xtd::time_zone_info::transition_time::month property.
weekThe week of the month in which the time change occurs. Its value can range from 1 to 5, with 5 representing the last week of the month. This parameter corresponds to the xtd::time_zone_info::transition_time::week property
day_of_weekThe day of the week on which the time change occurs. This parameter corresponds to the xtd::time_zone_info::transition_time::day_of_week property.
Returns
Data about the time change.
Exceptions
xtd::argument_exceptionThe time_of_day parameter has a non-default date component.
-or-
The time_of_day parameter's Kind property is not unspecified.
-or-
The time_of_day parameter does not represent a whole number of milliseconds.
xtd::argument_out_of_range_exceptionThe month parameter is less than 1 or greater than 12.
-or-
The week parameter is less than 1 or greater than 5.
Remarks
This method creates a floating-date rule (that is, a time change that occurs on a specific day of a specific week of a specific month). For example, a time change that occurs on the last Sunday of October follows a floating-date rule.
For transitions from standard time to daylight saving time, the time_of_day argument represents the time of the transition in the time zone's standard time. For transitions from daylight saving time to standard time, it represents the time of the transition in the time zone's daylight saving time. Note that this is a xtd::date_time value whose year, month, and date values must all equal 1.

◆ day()

uint32_t xtd::time_zone_info::transition_time::day ( ) const
inlinenoexcept

Gets the day on which the time change occurs.

Returns
The day on which the time change occurs.
Remarks
The xtd::time_zone_info::transition_time::day property returns a valid value only if the xtd::time_zone_info::transition_time::is_fixed_date_rule property is true.
The xtd::time_zone_info::transition_time::day property value corresponds to the value of the day parameter of the xtd::time_zone_info::transition_time::create_fixed_date_rule method. If its value is greater than the number of days in the month of the transition, the transition occurs on the last day of the month.
The xtd::time_zone_info::transition_time::day property indicates the day of the month on which a fixed-date rule is applied (for example, April 15). In contrast, the xtd::time_zone_info::transition_time::day_of_week property indicates the day of the week on which a floating-date rule is applied (for example, the second Sunday of November).

◆ day_of_week()

xtd::day_of_week xtd::time_zone_info::transition_time::day_of_week ( ) const
inlinenoexcept

Gets the day of the week on which the time change occurs.

Returns
The day of the week on which the time change occurs.
Remarks
The xtd::time_zone_info::transition_time::day_of_week property returns a valid value only if the xtd::time_zone_info::transition_time::is_fixed_date_rule property is false.
The xtd::time_zone_info::transition_time::day_of_week property indicates the day of the week on which a floating-date rule is applied (for example, the second Sunday of November). In contrast, the xtd::time_zone_info::transition_time::day property indicates the day of the month on which a fixed-date rule is applied (for example, April 15).

◆ equals()

bool xtd::time_zone_info::transition_time::equals ( const object obj) const
inlineoverridevirtualnoexcept

Determines whether the specified object is equal to the current object.

Parameters
objThe object to compare with the current object.
Returns
true if the specified object is equal to the current object. otherwise, false.
Examples
The following code example compares the current instance with another object.

Reimplemented from xtd::object.

◆ is_fixed_rule()

bool xtd::time_zone_info::transition_time::is_fixed_rule ( ) const
inlinenoexcept

Gets a value indicating whether the time change occurs at a fixed date and time (such as November 1) or a floating date and time (such as the last Sunday of October).

Returns
true if the time change rule is fixed-date; false if the time change rule is floating-date.
Remarks
A fixed-date rule indicates that the transition occurs on the same date and time of each year to which the adjustment rule applies. For example, a time change that occurs every November 3 follows a fixed-date rule. A floating-date rule indicates that the transition occurs on a specific day of a specific week of a specific month for each year to which the adjustment rule applies. For example, a time change that occurs on the first Sunday of November follows a floating-date rule.
The value of the xtd::time_zone_info::transition_time::is_fixed_date_rule property determines which properties of a xtd::time_zone_info::transition_time object have valid values. The following table indicates which properties are affected by the value of the xtd::time_zone_info::transition_time::is_fixed_date_rule property.
transition_time property is_fixed_date_rule = true is_fixed_date_rule = false
day
Valid Unused
Unused Valid
Unused Valid
month
Valid Valid
Valid Valid

◆ month()

uint32_t xtd::time_zone_info::transition_time::month ( ) const
inlinenoexcept

Gets the month in which the time change occurs.

Returns
The month in which the time change occurs.
Remarks
Valid values for the xtd::time_zone_info::transition_time::month property range from 1 to 12.
The xtd::time_zone_info::transition_time::month property is used for both fixed-date and floating-date rules.

◆ time_of_day()

xtd::date_time xtd::time_zone_info::transition_time::time_of_day ( ) const
inlinenoexcept

Gets the hour, minute, and second at which the time change occurs.

Returns
The time of day at which the time change occurs.
Remarks
For transitions from standard time to daylight saving time, the xtd::time_zone_info::transition_time::time_of_day value represents the time of the transition in the time zone's standard time. For transitions from daylight saving time to standard time, it represents the time of the transition in the time zone's daylight saving time.
The xtd::time_zone_info::transition_time::time_of_day property defines only the time of a time change, but not its date. The date is determined by the xtd::time_zone_info::transition_time::month and xtd::time_zone_info::transition_time::day properties for fixed-rule changes, and by the xtd::time_zone_info::transition_time::month, xtd::time_zone_info::transition_time::week, and xtd::time_zone_info::transition_time::day_of_week properties for floating-rule changes. The date component of this xtd::date_time value is ignored; the value of the year, month, and day is always 1.
The xtd::time_zone_info::transition_time::time_of_day property is used for both fixed-date and floating-date transitions.

◆ week()

uint32_t xtd::time_zone_info::transition_time::week ( ) const
inlinenoexcept

Gets the week of the month in which a time change occurs.

Returns
The week of the month in which the time change occurs.
Remarks
The value of the xtd::time_zone_info::transition_time::week property is used only for time changes with floating-date rules. Valid values can range from 1 to 5.
The xtd::time_zone_info::transition_time::month property defines the month in which the time change occurs. The xtd::time_zone_info::transition_time::week property determines the week on which the transition occurs. The xtd::time_zone_info::transition_time::day_of_week property defines the day of the week on which the transition occurs. The value of the xtd::time_zone_info::transition_time::week property is determined as shown in the following table.
 If the Week property value is The transition occurs on
 1 The first occurrence of the xtd::time_zone_info::transition_time::day_of_week value in xtd::time_zone_info::transition_time::month.
 2 The second occurrence of the xtd::time_zone_info::transition_time::day_of_week value in xtd::time_zone_info::transition_time::month.
 3 The third occurrence of the xtd::time_zone_info::transition_time::day_of_week value in xtd::time_zone_info::transition_time::month.
 4 The fourth occurrence of the xtd::time_zone_info::transition_time::day_of_week value in xtd::time_zone_info::transition_time::month.
 5 The last occurrence of the xtd::time_zone_info::transition_time::day_of_week value in xtd::time_zone_info::transition_time::month.
For example, if a transition occurs on the first Sunday of March, the value of the xtd::time_zone_info::transition_time::week property is 1. If it occurs on the last Sunday of March, the value of the xtd::time_zone_info::transition_time::week property is 5.

The documentation for this class was generated from the following file: