~alinuxninja/nginx-edge/trunk

« back to all changes in this revision

Viewing changes to debian/modules/ngx_pagespeed/psol/include/third_party/icu/source/i18n/coptccal.h

  • Committer: Vivian
  • Date: 2015-12-04 18:20:11 UTC
  • Revision ID: git-v1:a36f2bc32e884f7473b3a47040e5411306144d7d
* Do not extract psol.tar.gz

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
*******************************************************************************
3
 
* Copyright (C) 2003 - 2008, International Business Machines Corporation and  *
4
 
* others. All Rights Reserved.                                                *
5
 
*******************************************************************************
6
 
*/
7
 
 
8
 
#ifndef COPTCCAL_H
9
 
#define COPTCCAL_H
10
 
 
11
 
#include "unicode/utypes.h"
12
 
 
13
 
#if !UCONFIG_NO_FORMATTING
14
 
 
15
 
#include "unicode/calendar.h"
16
 
#include "cecal.h"
17
 
 
18
 
U_NAMESPACE_BEGIN
19
 
 
20
 
/**
21
 
 * Implement the Coptic calendar system.
22
 
 * @internal
23
 
 */
24
 
class CopticCalendar : public CECalendar {
25
 
  
26
 
public:
27
 
    /**
28
 
     * Useful constants for CopticCalendar.
29
 
     * @internal
30
 
     */
31
 
    enum EMonths {
32
 
        /** 
33
 
         * Constant for ωογτ/تﻮﺗ,
34
 
         * the 1st month of the Coptic year. 
35
 
         */
36
 
        TOUT,
37
 
        
38
 
        /** 
39
 
         * Constant for Παοπι/ﻪﺑﺎﺑ,
40
 
         * the 2nd month of the Coptic year. 
41
 
         */
42
 
        BABA,
43
 
 
44
 
        /** 
45
 
         * Constant for Αθορ/رﻮﺗﺎﻫ,
46
 
         * the 3rd month of the Coptic year. 
47
 
         */
48
 
        HATOR,
49
 
 
50
 
        /** 
51
 
         * Constant for Χοιακ/ﻚﻬﻴﻛ,
52
 
         * the 4th month of the Coptic year. 
53
 
         */
54
 
        KIAHK,
55
 
 
56
 
        /** 
57
 
         * Constant for Τωβι/طﻮﺒﻫ,
58
 
         * the 5th month of the Coptic year. 
59
 
         */
60
 
        TOBA,
61
 
 
62
 
        /** 
63
 
         * Constant for Μεϣιρ/ﺮﻴﺸﻣأ,
64
 
         * the 6th month of the Coptic year. 
65
 
         */
66
 
        AMSHIR,
67
 
 
68
 
        /** 
69
 
         * Constant for Παρεμϩατ/تﺎﻬﻣﺮﺑ,
70
 
         * the 7th month of the Coptic year. 
71
 
         */
72
 
        BARAMHAT,
73
 
 
74
 
        /** 
75
 
         * Constant for Φαρμοθι/هدﻮﻣﺮﺑ, 
76
 
         * the 8th month of the Coptic year. 
77
 
         */
78
 
        BARAMOUDA,
79
 
 
80
 
        /** 
81
 
         * Constant for Παϣαν/ﺲﻨﺸﺑ,
82
 
         * the 9th month of the Coptic year. 
83
 
         */
84
 
        BASHANS,
85
 
 
86
 
        /** 
87
 
         * Constant for Παωνι/ﻪﻧؤﻮﺑ,
88
 
         * the 10th month of the Coptic year. 
89
 
         */
90
 
        PAONA,
91
 
 
92
 
        /** 
93
 
         * Constant for Επηπ/ﺐﻴﺑأ,
94
 
         * the 11th month of the Coptic year. 
95
 
         */
96
 
        EPEP,
97
 
 
98
 
        /** 
99
 
         * Constant for Μεϲωρη/ىﺮﺴﻣ,
100
 
         * the 12th month of the Coptic year. 
101
 
         */
102
 
        MESRA,
103
 
 
104
 
        /** 
105
 
         * Constant for Πικογϫι
106
 
         * μαβοτ/ﺮﻴﻐﺼﻟا
107
 
         * ﺮﻬﺸﻟا,
108
 
         * the 13th month of the Coptic year. 
109
 
         */
110
 
        NASIE
111
 
    };
112
 
 
113
 
    enum EEras {
114
 
        BCE,    // Before the epoch
115
 
        CE      // After the epoch
116
 
    };
117
 
 
118
 
    /**
119
 
     * Constructs a CopticCalendar based on the current time in the default time zone
120
 
     * with the given locale.
121
 
     *
122
 
     * @param aLocale  The given locale.
123
 
     * @param success  Indicates the status of CopticCalendar object construction.
124
 
     *                 Returns U_ZERO_ERROR if constructed successfully.
125
 
     * @internal
126
 
     */
127
 
    CopticCalendar(const Locale& aLocale, UErrorCode& success);
128
 
 
129
 
    /**
130
 
     * Copy Constructor
131
 
     * @internal
132
 
     */
133
 
    CopticCalendar (const CopticCalendar& other);
134
 
 
135
 
    /**
136
 
     * Destructor.
137
 
     * @internal
138
 
     */
139
 
    virtual ~CopticCalendar();
140
 
 
141
 
    /**
142
 
     * Create and return a polymorphic copy of this calendar.
143
 
     * @return    return a polymorphic copy of this calendar.
144
 
     * @internal
145
 
     */
146
 
    virtual Calendar* clone(void) const;
147
 
 
148
 
    /**
149
 
     * return the calendar type, "coptic"
150
 
     * @return calendar type
151
 
     * @internal
152
 
     */
153
 
    const char * getType() const;
154
 
 
155
 
protected:
156
 
    //-------------------------------------------------------------------------
157
 
    // Calendar framework
158
 
    //-------------------------------------------------------------------------
159
 
 
160
 
    /**
161
 
     * Return the extended year defined by the current fields.
162
 
     * @internal
163
 
     */
164
 
    virtual int32_t handleGetExtendedYear();
165
 
 
166
 
    /**
167
 
     * Compute fields from the JD
168
 
     * @internal
169
 
     */
170
 
    virtual void handleComputeFields(int32_t julianDay, UErrorCode &status);
171
 
 
172
 
    /**
173
 
     * Returns the date of the start of the default century
174
 
     * @return start of century - in milliseconds since epoch, 1970
175
 
     * @internal
176
 
     */
177
 
    virtual UDate defaultCenturyStart() const;
178
 
 
179
 
    /**
180
 
     * Returns the year in which the default century begins
181
 
     * @internal
182
 
     */
183
 
    virtual int32_t defaultCenturyStartYear() const;
184
 
 
185
 
    /**
186
 
     * Return the date offset from Julian
187
 
     * @internal
188
 
     */
189
 
    virtual int32_t getJDEpochOffset() const;
190
 
 
191
 
private:
192
 
    /**
193
 
     * The system maintains a static default century start date.  This is initialized
194
 
     * the first time it is used.  Before then, it is set to SYSTEM_DEFAULT_CENTURY to
195
 
     * indicate an uninitialized state.  Once the system default century date and year
196
 
     * are set, they do not change.
197
 
     */
198
 
    static UDate fgSystemDefaultCenturyStart;
199
 
 
200
 
    /**
201
 
     * See documentation for systemDefaultCenturyStart.
202
 
     */
203
 
    static int32_t fgSystemDefaultCenturyStartYear;
204
 
 
205
 
    /**
206
 
     * Default value that indicates the defaultCenturyStartYear is unitialized
207
 
     */
208
 
    static const int32_t fgSystemDefaultCenturyYear;
209
 
 
210
 
    /**
211
 
     * start of default century, as a date
212
 
     */
213
 
    static const UDate fgSystemDefaultCentury;
214
 
 
215
 
    /**
216
 
     * Initializes the 100-year window that dates with 2-digit years
217
 
     * are considered to fall within so that its start date is 80 years
218
 
     * before the current time.
219
 
     */
220
 
    static void initializeSystemDefaultCentury(void);
221
 
 
222
 
public:
223
 
    /**
224
 
     * Override Calendar Returns a unique class ID POLYMORPHICALLY. Pure virtual
225
 
     * override. This method is to implement a simple version of RTTI, since not all C++
226
 
     * compilers support genuine RTTI. Polymorphic operator==() and clone() methods call
227
 
     * this method.
228
 
     *
229
 
     * @return   The class ID for this object. All objects of a given class have the
230
 
     *           same class ID. Objects of other classes have different class IDs.
231
 
     * @internal
232
 
     */
233
 
    virtual UClassID getDynamicClassID(void) const;
234
 
 
235
 
    /**
236
 
     * Return the class ID for this class. This is useful only for comparing to a return
237
 
     * value from getDynamicClassID(). For example:
238
 
     *
239
 
     *      Base* polymorphic_pointer = createPolymorphicObject();
240
 
     *      if (polymorphic_pointer->getDynamicClassID() ==
241
 
     *          Derived::getStaticClassID()) ...
242
 
     *
243
 
     * @return   The class ID for all objects of this class.
244
 
     * @internal
245
 
     */
246
 
    U_I18N_API static UClassID U_EXPORT2 getStaticClassID(void);  
247
 
 
248
 
#if 0
249
 
    // We do not want to introduce this API in ICU4C.
250
 
    // It was accidentally introduced in ICU4J as a public API.
251
 
public:
252
 
    //-------------------------------------------------------------------------
253
 
    // Calendar system Conversion methods...
254
 
    //-------------------------------------------------------------------------
255
 
    /**
256
 
     * Convert an Coptic year, month, and day to a Julian day.
257
 
     *
258
 
     * @param year the extended year
259
 
     * @param month the month
260
 
     * @param day the day
261
 
     * @return Julian day
262
 
     * @internal
263
 
     */
264
 
    static int32_t copticToJD(int32_t year, int32_t month, int32_t day);
265
 
#endif
266
 
};
267
 
 
268
 
U_NAMESPACE_END
269
 
 
270
 
#endif /* #if !UCONFIG_NO_FORMATTING */
271
 
#endif /* COPTCCAL_H */
272
 
//eof