Team Ai
Datasetpublic

codekingpro/portable-devtools

sourceHugging Faceupdated 5mo agoView on Hugging Face
1likes16kdownloads
tmunit.h143 linesDownload Raw Back to unicode
1// © 2016 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
3/*
4 *******************************************************************************
5 * Copyright (C) 2009-2016, International Business Machines Corporation,       *
6 * Google, and others. All Rights Reserved.                                    *
7 *******************************************************************************
8 */
9
10#ifndef __TMUNIT_H__
11#define __TMUNIT_H__
12
13
14/**
15 * \file
16 * \brief C++ API: time unit object
17 */
18
19#include "unicode/utypes.h"
20
21#if U_SHOW_CPLUSPLUS_API
22
23#include "unicode/measunit.h"
24
25#if !UCONFIG_NO_FORMATTING
26
27U_NAMESPACE_BEGIN
28
29/**
30 * Measurement unit for time units.
31 * @see TimeUnitAmount
32 * @see TimeUnit
33 * @stable ICU 4.2
34 */
35class U_I18N_API TimeUnit: public MeasureUnit {
36public:
37    /**
38     * Constants for all the time units we supported.
39     * @stable ICU 4.2
40     */
41    enum UTimeUnitFields {
42        UTIMEUNIT_YEAR,
43        UTIMEUNIT_MONTH,
44        UTIMEUNIT_DAY,
45        UTIMEUNIT_WEEK,
46        UTIMEUNIT_HOUR,
47        UTIMEUNIT_MINUTE,
48        UTIMEUNIT_SECOND,
49#ifndef U_HIDE_DEPRECATED_API
50        /**
51         * One more than the highest normal UTimeUnitFields value.
52         * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
53         */
54        UTIMEUNIT_FIELD_COUNT
55#endif  // U_HIDE_DEPRECATED_API
56    };
57
58    /**
59     * Create Instance.
60     * @param timeUnitField  time unit field based on which the instance
61     *                       is created.
62     * @param status         input-output error code.
63     *                       If the timeUnitField is invalid,
64     *                       then this will be set to U_ILLEGAL_ARGUMENT_ERROR.
65     * @return               a TimeUnit instance
66     * @stable ICU 4.2
67     */
68    static TimeUnit* U_EXPORT2 createInstance(UTimeUnitFields timeUnitField,
69                                              UErrorCode& status);
70
71
72    /**
73     * Override clone.
74     * @stable ICU 4.2
75     */
76    virtual TimeUnit* clone() const;
77
78    /**
79     * Copy operator.
80     * @stable ICU 4.2
81     */
82    TimeUnit(const TimeUnit& other);
83
84    /**
85     * Assignment operator.
86     * @stable ICU 4.2
87     */
88    TimeUnit& operator=(const TimeUnit& other);
89
90    /**
91     * Returns a unique class ID for this object POLYMORPHICALLY.
92     * This method implements a simple form of RTTI used by ICU.
93     * @return The class ID for this object. All objects of a given
94     * class have the same class ID.  Objects of other classes have
95     * different class IDs.
96     * @stable ICU 4.2
97     */
98    virtual UClassID getDynamicClassID() const;
99
100    /**
101     * Returns the class ID for this class. This is used to compare to
102     * the return value of getDynamicClassID().
103     * @return The class ID for all objects of this class.
104     * @stable ICU 4.2
105     */
106    static UClassID U_EXPORT2 getStaticClassID();
107
108
109    /**
110     * Get time unit field.
111     * @return time unit field.
112     * @stable ICU 4.2
113     */
114    UTimeUnitFields getTimeUnitField() const;
115
116    /**
117     * Destructor.
118     * @stable ICU 4.2
119     */
120    virtual ~TimeUnit();
121
122private:
123    UTimeUnitFields fTimeUnitField;
124
125    /**
126     * Constructor
127     * @internal (private)
128     */
129    TimeUnit(UTimeUnitFields timeUnitField);
130
131};
132
133
134U_NAMESPACE_END
135
136#endif /* #if !UCONFIG_NO_FORMATTING */
137
138#endif /* U_SHOW_CPLUSPLUS_API */
139
140#endif // __TMUNIT_H__
141//eof
142//
143 
codekingpro/portable-devtools · Team Ai