xtd 0.2.0
Loading...
Searching...
No Matches
xtd::time_zone_info::adjustement_rule Class Reference
Inheritance diagram for xtd::time_zone_info::adjustement_rule:
xtd::iequatable< adjustement_rule > xtd::object xtd::interface xtd::equality_operators< type_t, equatable_t >

Definition

Provides information about a time zone adjustment, such as the transition to and from daylight saving time.

class adjustement_rule : public xtd::iequatable<adjustement_rule>, public xtd::object
Defines a generalized method that a value type or class implements to create a type-specific method f...
Definition iequatable.h:22
Supports all classes in the xtd class hierarchy and provides low-level services to derived classes....
Definition object.h:42
Provides information about a time zone adjustment, such as the transition to and from daylight saving...
Definition time_zone_info.h:187
Inheritance
xtd::object → xtd::adjustement_rule
Implements
xtd::iequatable <>
Namespace
xtd
Library
xtd.core
Remarks
The xtd::time_zone_info::adjustment_rule class defines the effective start and end dates of a particular time change to and from daylight saving time, respectively, as well as its delta (the exact amount by which the adjustment causes the time zone's standard time to change). In addition, two properties return xtd::txtd::time_zone_info::transition_time objects that define when each transition to and from standard time occurs.
Note
An instance of the xtd::time_zone_info::adjustment_rule class is immutable. Once an object has been created, its values cannot be modified.
Remarks
To create a xtd::time_zone_info::adjustment_rule object, call the static xtd::time_zone_info::adjustment_rule::create_adjustment_rule method. You can then supply an array of xtd::time_zone_info::adjustment_rule objects to two of the overloads of the xtd::time_zone_info::create_custom_time_zone method. To retrieve the adjustment rules of a particular time zone, call its xtd::time_zone_info::get_adjustment_rules method, which returns an array of xtd::time_zone_info::adjustment_rule objects.

Public Properties

const xtd::date_timedate_end () const noexcept
 Gets the date when the adjustment rule ceases to be in effect.
 
const xtd::date_timedate_start () const noexcept
 Gets the date when the adjustment rule takes effect.
 
xtd::time_span daylight_delta () const noexcept
 Gets the amount of time that is required to form the time zone's daylight saving time. This amount of time is added to the time zone's offset from Coordinated Universal Time (UTC).
 
transition_time daylight_transition_end () const noexcept
 Gets information about the annual transition from daylight saving time back to standard time.
 
transition_time daylight_transition_start () const noexcept
 Gets information about the annual transition from standard time to daylight saving time.
 

Public Methods

bool equals (const adjustement_rule &ar) const noexcept override
 
virtual bool equals (const object &obj) const noexcept
 Determines whether the specified object is equal to the current object.
 
template<typename object_a_t , typename object_b_t >
static bool equals (const object_a_t &object_a, const object_b_t &object_b) noexcept
 Determines whether the specified object instances are considered equal.
 

Additional Inherited Members

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

Member Function Documentation

◆ date_end()

const xtd::date_time & xtd::time_zone_info::adjustement_rule::date_end ( ) const
noexcept

Gets the date when the adjustment rule ceases to be in effect.

Returns
A xtd::date_time value that indicates the end date of the adjustment rule.
Remarks
The value of the xtd::time_zone_info::adjustement_rule::date_end property is a date value without a time component.
Because the end date of the current adjustment rule is typically not known, you can assign
date_time::max_value().date() 
to the xtd::time_zone_info::adjustement_rule::date_end property when you create a custom adjustment rule.
Warning
Unless there is a compelling reason to do otherwise, you should define the adjustment rule's end date to occur within the time interval during which the time zone observes standard time. Unless there is a compelling reason to do so, you should not define the adjustment rule's end date to occur within the time interval during which the time zone observes daylight saving time. For example, if a time zone's transition from daylight saving time occurs on the third Sunday of March and its transition to daylight saving time occurs on the first Sunday of October, the effective end date of the adjustment rule should not be December 31 of a particular year, since that date occurs within the period of daylight saving time.

◆ date_start()

const xtd::date_time & xtd::time_zone_info::adjustement_rule::date_start ( ) const
noexcept

Gets the date when the adjustment rule takes effect.

Returns
A xtd::date_time value that indicates when the adjustment rule takes effect.
Remarks
The value of the xtd::time_zone_info::adjustement_rule::date_start property is a date value without a time component. It defines the date on which a particular adjustment rule goes into effect. This is the date in which a set of transitions (which typically are defined by one transition to daylight savings time and one transition back to standard time) go into effect. For example, an adjustment rule might go into effect on January 1, 2017, that provides for a transition to daylight savings time on the second Sunday of March and for a transition back to standard time on the first Sunday of November. Note that the starting date of the adjustment rule is not tied to the date of the first transition.
You can assign
date_time::min_value().date() 
to the xtd::time_zone_info::adjustement_rule::date_end property when you create a custom adjustment rule for use in a time zone-aware application that does not have to work with historic time zone information.
Warning
Unless there is a compelling reason to do otherwise, you should define the adjustment rule's start date to occur within the time interval during which the time zone observes standard time. Unless there is a compelling reason to do so, you should not define the adjustment rule's start date to occur within the time interval during which the time zone observes daylight saving time. For example, if a time zone's transition from daylight saving time occurs on the third Sunday of March and its transition to daylight saving time occurs on the first Sunday of October, the effective start date of the adjustment rule should not be January 1 of a particular year, since that date occurs within the period of daylight saving time.

◆ daylight_delta()

xtd::time_span xtd::time_zone_info::adjustement_rule::daylight_delta ( ) const
noexcept

Gets the amount of time that is required to form the time zone's daylight saving time. This amount of time is added to the time zone's offset from Coordinated Universal Time (UTC).

Returns
A xtd::time_span object that indicates the amount of time to add to the standard time changes as a result of the adjustment rule.
Remarks
The following formula defines a time zone's daylight saving time:
time_tone_time = base_utc_offset + daylight_delta + utc_time
xtd::time_span daylight_delta() const noexcept
Gets the amount of time that is required to form the time zone's daylight saving time....
ticks base_utc_offset() const noexcept
Gets the time difference between the current time zone's standard time and Coordinated Universal Time...
The value of the xtd::time_zone_info::adjustement_rule::daylight_delta property can range from 14 hours to -14 hours.
Note
The xtd::time_zone_info::adjustement_rule::daylight_delta property measures the difference between the time zone's standard time and its daylight saving time. It does not apply to changes in a time zone's standard offset from Coordinated Universal Time (UTC). To represent a time zone that has changed its standard time offset from UTC, you must call the CreateCustomTimeZone method to create a new time zone.
Remarks
The most common value of the xtd::time_zone_info::adjustement_rule::daylight_delta property is 1.0 hours. The application of the daylight saving time adjustment rule increases the time zone's offset from Coordinated Universal Time (UTC) by one hour.

◆ daylight_transition_end()

transition_time xtd::time_zone_info::adjustement_rule::daylight_transition_end ( ) const
noexcept

Gets information about the annual transition from daylight saving time back to standard time.

Returns
A xtd::time_zone_info::transition_time object that defines the annual transition from daylight saving time back to the time zone's standard time.
Remarks
The xtd::time_zone_info::transition_time object returned by the xtd::time_zone_info::transition_time::daylight_transition_end property defines either a fixed-date rule or a floating-date rule for the return to standard time. A fixed-date rule provides the month, day, and time of day on which the transition occurs. A floating-date rule provides the month, week, day of the week, and time of day on which the transition occurs.

◆ daylight_transition_start()

transition_time xtd::time_zone_info::adjustement_rule::daylight_transition_start ( ) const
noexcept

Gets information about the annual transition from standard time to daylight saving time.

Returns
A xtd::time_zone_info::transition_time object that defines the annual transition from a time zone's standard time to daylight saving time.
Remarks
The xtd::time_zone_info::transition_time object returned by the xtd::time_zone_info::transition_time::daylight_transition_start property defines either a fixed-date rule or a floating-date rule for the transition to daylight saving time. A fixed-date rule provides the month, day, and time of day on which the transition occurs. A floating-date rule provides the month, the week, the day of the week, and the time of day on which the transition occurs.

◆ equals() [1/2]

virtual bool xtd::object::equals ( const object obj) const
virtualnoexcept

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.
#include <xtd/console>
using namespace xtd;
auto main() -> int {
auto object1 = new_ptr<object>();
auto object2 = new_ptr<object>();
auto object3 = object2;
console::write_line(object1->equals(*object3));
console::write_line(*object1 == *object3);
object3 = object1;
console::write_line(object1->equals(*object3));
console::write_line(*object1 == *object3);
}
// This code produces the following output :
//
// false
// false
// true
// true
static void write_line()
Writes the current line terminator to the standard output stream using the specified format informati...
The xtd namespace contains all fundamental classes to access Hardware, Os, System,...
Definition xtd_about_box.h:10

Reimplemented from xtd::object.

◆ equals() [2/2]

template<typename object_a_t , typename object_b_t >
static bool xtd::object::equals ( const object_a_t &  object_a,
const object_b_t &  object_b 
)
inlinestaticnoexcept

Determines whether the specified object instances are considered equal.

Parameters
object_aThe first object to compare.
object_bThe second object to compare.
Returns
true if object_a is the same instance as object_b or if both are null references or if object_a(object_b) returns true. otherwise, false.
Examples
The following code example compares different objects.
#include <xtd/console>
using namespace xtd;
auto main() -> int {
string s1 = "Tom";
string s2 = "Carol";
console::write_line("object::equals(\"{0}\", \"{1}\") => {2}", s1, s2, object::equals(s1, s2));
s1 = "Tom";
s2 = "Tom";
console::write_line("object::equals(\"{0}\", \"{1}\") => {2}", s1, s2, object::equals(s1, s2));
s1 = "";
s2 = "Tom";
console::write_line("object::equals(\"{0}\", \"{1}\") => {2}", s1, s2, object::equals(s1, s2));
s1 = "Carol";
s2 = "";
console::write_line("object::equals(\"{0}\", \"{1}\") => {2}", s1, s2, object::equals(s1, s2));
s1 = "";
s2 = "";
console::write_line("object::equals(\"{0}\", \"{1}\") => {2}", s1, s2, object::equals(s1, s2));
}
// This code produces the following output :
//
// object::equals("Tom", "Carol") => false
// object::equals("Tom", "Tom") => true
// object::equals("", "Tom") => false
// object::equals("Carol", "") => false
// object::equals("", "") => true
virtual bool equals(const object &obj) const noexcept
Determines whether the specified object is equal to the current object.

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