"Fossies" - the Fresh Open Source Software Archive

Member "tzrule_8h_source.html" (3 Oct 2019, 58247 Bytes) of package /linux/misc/icu4c-65_1-docs.zip:


Caution: In this restricted "Fossies" environment the current HTML page may not be correctly presentated and may have some non-functional links. You can here alternatively try to browse the pure source code or just view or download the uninterpreted raw source code. If the rendering is insufficient you may try to find and view the page on the project site itself.

ICU 65.1  65.1
tzrule.h
Go to the documentation of this file.
1 // © 2016 and later: Unicode, Inc. and others.
2 // License & terms of use: http://www.unicode.org/copyright.html
3 /*
4 *******************************************************************************
5 * Copyright (C) 2007-2008, International Business Machines Corporation and *
6 * others. All Rights Reserved. *
7 *******************************************************************************
8 */
9 #ifndef TZRULE_H
10 #define TZRULE_H
11 
17 #include "unicode/utypes.h"
18 
19 #if U_SHOW_CPLUSPLUS_API
20 
21 #if !UCONFIG_NO_FORMATTING
22 
23 #include "unicode/uobject.h"
24 #include "unicode/unistr.h"
25 #include "unicode/dtrule.h"
26 
27 U_NAMESPACE_BEGIN
28 
37 public:
42  virtual ~TimeZoneRule();
43 
50  virtual TimeZoneRule* clone() const = 0;
51 
59  virtual UBool operator==(const TimeZoneRule& that) const;
60 
68  virtual UBool operator!=(const TimeZoneRule& that) const;
69 
76  UnicodeString& getName(UnicodeString& name) const;
77 
83  int32_t getRawOffset(void) const;
84 
91  int32_t getDSTSavings(void) const;
92 
101  virtual UBool isEquivalentTo(const TimeZoneRule& other) const;
102 
114  virtual UBool getFirstStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const = 0;
115 
127  virtual UBool getFinalStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const = 0;
128 
143  virtual UBool getNextStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
144  UBool inclusive, UDate& result) const = 0;
145 
160  virtual UBool getPreviousStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
161  UBool inclusive, UDate& result) const = 0;
162 
163 protected:
164 
174  TimeZoneRule(const UnicodeString& name, int32_t rawOffset, int32_t dstSavings);
175 
181  TimeZoneRule(const TimeZoneRule& source);
182 
188  TimeZoneRule& operator=(const TimeZoneRule& right);
189 
190 private:
191  UnicodeString fName; // time name
192  int32_t fRawOffset; // UTC offset of the standard time in milliseconds
193  int32_t fDSTSavings; // DST saving amount in milliseconds
194 };
195 
203 public:
213  InitialTimeZoneRule(const UnicodeString& name, int32_t rawOffset, int32_t dstSavings);
214 
221 
226  virtual ~InitialTimeZoneRule();
227 
234  virtual InitialTimeZoneRule* clone() const;
235 
242 
250  virtual UBool operator==(const TimeZoneRule& that) const;
251 
259  virtual UBool operator!=(const TimeZoneRule& that) const;
260 
273  UBool getStartInYear(int32_t year, int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
274 
283  virtual UBool isEquivalentTo(const TimeZoneRule& that) const;
284 
296  virtual UBool getFirstStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
297 
309  virtual UBool getFinalStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
310 
325  virtual UBool getNextStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
326  UBool inclusive, UDate& result) const;
327 
342  virtual UBool getPreviousStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
343  UBool inclusive, UDate& result) const;
344 
345 public:
357  static UClassID U_EXPORT2 getStaticClassID(void);
358 
370  virtual UClassID getDynamicClassID(void) const;
371 };
372 
381 public:
386  static const int32_t MAX_YEAR;
387 
404  AnnualTimeZoneRule(const UnicodeString& name, int32_t rawOffset, int32_t dstSavings,
405  const DateTimeRule& dateTimeRule, int32_t startYear, int32_t endYear);
406 
423  AnnualTimeZoneRule(const UnicodeString& name, int32_t rawOffset, int32_t dstSavings,
424  DateTimeRule* dateTimeRule, int32_t startYear, int32_t endYear);
425 
431  AnnualTimeZoneRule(const AnnualTimeZoneRule& source);
432 
437  virtual ~AnnualTimeZoneRule();
438 
445  virtual AnnualTimeZoneRule* clone() const;
446 
453 
461  virtual UBool operator==(const TimeZoneRule& that) const;
462 
470  virtual UBool operator!=(const TimeZoneRule& that) const;
471 
478  const DateTimeRule* getRule(void) const;
479 
486  int32_t getStartYear(void) const;
487 
494  int32_t getEndYear(void) const;
495 
508  UBool getStartInYear(int32_t year, int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
509 
518  virtual UBool isEquivalentTo(const TimeZoneRule& that) const;
519 
531  virtual UBool getFirstStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
532 
544  virtual UBool getFinalStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
545 
560  virtual UBool getNextStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
561  UBool inclusive, UDate& result) const;
562 
577  virtual UBool getPreviousStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
578  UBool inclusive, UDate& result) const;
579 
580 
581 private:
582  DateTimeRule* fDateTimeRule;
583  int32_t fStartYear;
584  int32_t fEndYear;
585 
586 public:
598  static UClassID U_EXPORT2 getStaticClassID(void);
599 
611  virtual UClassID getDynamicClassID(void) const;
612 };
613 
621 public:
639  TimeArrayTimeZoneRule(const UnicodeString& name, int32_t rawOffset, int32_t dstSavings,
640  const UDate* startTimes, int32_t numStartTimes, DateTimeRule::TimeRuleType timeRuleType);
641 
648 
653  virtual ~TimeArrayTimeZoneRule();
654 
661  virtual TimeArrayTimeZoneRule* clone() const;
662 
669 
677  virtual UBool operator==(const TimeZoneRule& that) const;
678 
686  virtual UBool operator!=(const TimeZoneRule& that) const;
687 
696  DateTimeRule::TimeRuleType getTimeType(void) const;
697 
707  UBool getStartTimeAt(int32_t index, UDate& result) const;
708 
714  int32_t countStartTimes(void) const;
715 
724  virtual UBool isEquivalentTo(const TimeZoneRule& that) const;
725 
737  virtual UBool getFirstStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
738 
750  virtual UBool getFinalStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const;
751 
766  virtual UBool getNextStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
767  UBool inclusive, UDate& result) const;
768 
783  virtual UBool getPreviousStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings,
784  UBool inclusive, UDate& result) const;
785 
786 
787 private:
788  enum { TIMEARRAY_STACK_BUFFER_SIZE = 32 };
789  UBool initStartTimes(const UDate source[], int32_t size, UErrorCode& ec);
790  UDate getUTC(UDate time, int32_t raw, int32_t dst) const;
791 
792  DateTimeRule::TimeRuleType fTimeRuleType;
793  int32_t fNumStartTimes;
794  UDate* fStartTimes;
795  UDate fLocalStartTimes[TIMEARRAY_STACK_BUFFER_SIZE];
796 
797 public:
809  static UClassID U_EXPORT2 getStaticClassID(void);
810 
822  virtual UClassID getDynamicClassID(void) const;
823 };
824 
825 
826 U_NAMESPACE_END
827 
828 #endif /* #if !UCONFIG_NO_FORMATTING */
829 
830 #endif /* U_SHOW_CPLUSPLUS_API */
831 
832 #endif // TZRULE_H
833 
834 //eof
virtual UBool operator==(const TimeZoneRule &that) const
Return true if the given TimeZoneRule objects are semantically equal.
TimeRuleType
Time rule type constants.
Definition: dtrule.h:55
C++ API: Rule for specifying date and time in an year.
double UDate
Date and Time data type.
Definition: utypes.h:203
C++ API: Unicode String.
U_EXPORT UBool operator==(const StringPiece &x, const StringPiece &y)
Global operator == for StringPiece.
void * UClassID
UClassID is used to identify classes without using the compiler's RTTI.
Definition: uobject.h:96
virtual TimeZoneRule * clone() const =0
Clone this TimeZoneRule object polymorphically.
virtual UBool getFinalStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate &result) const =0
Gets the final time when this rule takes effect.
virtual UBool operator!=(const TimeZoneRule &that) const
Return true if the given TimeZoneRule objects are semantically unequal.
#define U_I18N_API
Set to export library symbols from inside the i18n library, and to import them from outside...
Definition: utypes.h:301
TimeZoneRule is a class representing a rule for time zone.
Definition: tzrule.h:36
InitialTimeZoneRule represents a time zone rule representing a time zone effective from the beginning...
Definition: tzrule.h:202
virtual UBool getPreviousStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings, UBool inclusive, UDate &result) const =0
Gets the most recent time when this rule takes effect before the specified time.
TimeZoneRule & operator=(const TimeZoneRule &right)
Assignment operator.
static const int32_t MAX_YEAR
The constant representing the maximum year used for designating a rule is permanent.
Definition: tzrule.h:386
UBool operator!=(const StringPiece &x, const StringPiece &y)
Global operator != for StringPiece.
Definition: stringpiece.h:251
virtual UClassID getDynamicClassID() const
ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class.
virtual UBool isEquivalentTo(const TimeZoneRule &other) const
Returns if this rule represents the same rule and offsets as another.
TimeArrayTimeZoneRule represents a time zone rule whose start times are defined by an array of millis...
Definition: tzrule.h:620
AnnualTimeZoneRule is a class used for representing a time zone rule which takes effect annually...
Definition: tzrule.h:380
C++ API: Common ICU base class UObject.
DateTimeRule is a class representing a time in a year by a rule specified by month, day of month, day of week and time in the day.
Definition: dtrule.h:33
UErrorCode
Standard ICU4C error code type, a substitute for exceptions.
Definition: utypes.h:415
virtual UBool getNextStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings, UBool inclusive, UDate &result) const =0
Gets the first time when this rule takes effect after the specified time.
virtual UBool getFirstStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate &result) const =0
Gets the very first time when this rule takes effect.
Basic definitions for ICU, for both C and C++ APIs.
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
Definition: unistr.h:294
UObject is the common ICU "boilerplate" class.
Definition: uobject.h:223
int8_t UBool
The ICU boolean type.
Definition: umachine.h:261