]> git.saurik.com Git - apple/icu.git/blob - icuSources/i18n/dangical.h
ICU-511.35.tar.gz
[apple/icu.git] / icuSources / i18n / dangical.h
1 /*
2 *****************************************************************************
3 * Copyright (C) 2013, International Business Machines Corporation
4 * and others. All Rights Reserved.
5 *****************************************************************************
6 *
7 * File DANGICAL.H
8 *****************************************************************************
9 */
10
11 #ifndef DANGICAL_H
12 #define DANGICAL_H
13
14 #include "unicode/utypes.h"
15
16 #if !UCONFIG_NO_FORMATTING
17
18 #include "unicode/calendar.h"
19 #include "unicode/timezone.h"
20 #include "chnsecal.h"
21
22 U_NAMESPACE_BEGIN
23
24 /**
25 * <p><code>DangiCalendar</code> is a concrete subclass of {@link Calendar}
26 * that implements a traditional Korean lunisolar calendar.</p>
27 *
28 * <p>DangiCalendar usually should be instantiated using
29 * {@link com.ibm.icu.util.Calendar#getInstance(ULocale)} passing in a <code>ULocale</code>
30 * with the tag <code>"@calendar=dangi"</code>.</p>
31 *
32 * @internal
33 */
34 class DangiCalendar : public ChineseCalendar {
35 public:
36 //-------------------------------------------------------------------------
37 // Constructors...
38 //-------------------------------------------------------------------------
39
40 /**
41 * Constructs a DangiCalendar based on the current time in the default time zone
42 * with the given locale.
43 *
44 * @param aLocale The given locale.
45 * @param success Indicates the status of DangiCalendar object construction.
46 * Returns U_ZERO_ERROR if constructed successfully.
47 * @internal
48 */
49 DangiCalendar(const Locale& aLocale, UErrorCode &success);
50
51 /**
52 * Copy Constructor
53 * @internal
54 */
55 DangiCalendar(const DangiCalendar& other);
56
57 /**
58 * Destructor.
59 * @internal
60 */
61 virtual ~DangiCalendar();
62
63 /**
64 * Clone.
65 * @internal
66 */
67 virtual Calendar* clone() const;
68
69 //----------------------------------------------------------------------
70 // Internal methods & astronomical calculations
71 //----------------------------------------------------------------------
72
73 private:
74
75 const TimeZone* getDangiCalZoneAstroCalc(void) const;
76
77 // UObject stuff
78 public:
79 /**
80 * @return The class ID for this object. All objects of a given class have the
81 * same class ID. Objects of other classes have different class IDs.
82 * @internal
83 */
84 virtual UClassID getDynamicClassID(void) const;
85
86 /**
87 * Return the class ID for this class. This is useful only for comparing to a return
88 * value from getDynamicClassID(). For example:
89 *
90 * Base* polymorphic_pointer = createPolymorphicObject();
91 * if (polymorphic_pointer->getDynamicClassID() ==
92 * Derived::getStaticClassID()) ...
93 *
94 * @return The class ID for all objects of this class.
95 * @internal
96 */
97 U_I18N_API static UClassID U_EXPORT2 getStaticClassID(void);
98
99 /**
100 * return the calendar type, "dangi".
101 *
102 * @return calendar type
103 * @internal
104 */
105 const char * getType() const;
106
107
108 private:
109
110 DangiCalendar(); // default constructor not implemented
111 };
112
113 U_NAMESPACE_END
114
115 #endif
116 #endif
117
118
119