本文整理汇总了C++中TimeUnit::clone方法的典型用法代码示例。如果您正苦于以下问题:C++ TimeUnit::clone方法的具体用法?C++ TimeUnit::clone怎么用?C++ TimeUnit::clone使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类TimeUnit
的用法示例。
在下文中一共展示了TimeUnit::clone方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: testAPI
void TimeUnitTest::testAPI() {
//================= TimeUnit =================
UErrorCode status = U_ZERO_ERROR;
TimeUnit* tmunit = TimeUnit::createInstance(TimeUnit::UTIMEUNIT_YEAR, status);
if (!assertSuccess("TimeUnit::createInstance", status)) return;
TimeUnit* another = (TimeUnit*)tmunit->clone();
TimeUnit third(*tmunit);
TimeUnit fourth = third;
assertTrue("orig and clone are equal", (*tmunit == *another));
assertTrue("copied and assigned are equal", (third == fourth));
TimeUnit* tmunit_m = TimeUnit::createInstance(TimeUnit::UTIMEUNIT_MONTH, status);
assertTrue("year != month", (*tmunit != *tmunit_m));
TimeUnit::UTimeUnitFields field = tmunit_m->getTimeUnitField();
assertTrue("field of month time unit is month", (field == TimeUnit::UTIMEUNIT_MONTH));
delete tmunit;
delete another;
delete tmunit_m;
//
//================= TimeUnitAmount =================
Formattable formattable((int32_t)2);
TimeUnitAmount tma_long(formattable, TimeUnit::UTIMEUNIT_DAY, status);
if (!assertSuccess("TimeUnitAmount(formattable...)", status)) return;
formattable.setDouble(2);
TimeUnitAmount tma_double(formattable, TimeUnit::UTIMEUNIT_DAY, status);
if (!assertSuccess("TimeUnitAmount(formattable...)", status)) return;
formattable.setDouble(3);
TimeUnitAmount tma_double_3(formattable, TimeUnit::UTIMEUNIT_DAY, status);
if (!assertSuccess("TimeUnitAmount(formattable...)", status)) return;
TimeUnitAmount tma(2, TimeUnit::UTIMEUNIT_DAY, status);
if (!assertSuccess("TimeUnitAmount(number...)", status)) return;
TimeUnitAmount tma_h(2, TimeUnit::UTIMEUNIT_HOUR, status);
if (!assertSuccess("TimeUnitAmount(number...)", status)) return;
TimeUnitAmount second(tma);
TimeUnitAmount third_tma = tma;
TimeUnitAmount* fourth_tma = (TimeUnitAmount*)tma.clone();
assertTrue("orig and copy are equal", (second == tma));
assertTrue("clone and assigned are equal", (third_tma == *fourth_tma));
assertTrue("different if number diff", (tma_double != tma_double_3));
assertTrue("different if number type diff", (tma_double != tma_long));
assertTrue("different if time unit diff", (tma != tma_h));
assertTrue("same even different constructor", (tma_double == tma));
assertTrue("getTimeUnitField", (tma.getTimeUnitField() == TimeUnit::UTIMEUNIT_DAY));
delete fourth_tma;
//
//================= TimeUnitFormat =================
//
TimeUnitFormat* tmf_en = new TimeUnitFormat(Locale("en"), status);
if (!assertSuccess("TimeUnitFormat(en...)", status, TRUE)) return;
TimeUnitFormat tmf_fr(Locale("fr"), status);
if (!assertSuccess("TimeUnitFormat(fr...)", status)) return;
assertTrue("TimeUnitFormat: en and fr diff", (*tmf_en != tmf_fr));
TimeUnitFormat tmf_assign = *tmf_en;
assertTrue("TimeUnitFormat: orig and assign are equal", (*tmf_en == tmf_assign));
TimeUnitFormat tmf_copy(tmf_fr);
assertTrue("TimeUnitFormat: orig and copy are equal", (tmf_fr == tmf_copy));
TimeUnitFormat* tmf_clone = (TimeUnitFormat*)tmf_en->clone();
assertTrue("TimeUnitFormat: orig and clone are equal", (*tmf_en == *tmf_clone));
delete tmf_clone;
tmf_en->setLocale(Locale("fr"), status);
if (!assertSuccess("setLocale(fr...)", status)) return;
NumberFormat* numberFmt = NumberFormat::createInstance(
Locale("fr"), status);
if (!assertSuccess("NumberFormat::createInstance()", status)) return;
tmf_en->setNumberFormat(*numberFmt, status);
if (!assertSuccess("setNumberFormat(en...)", status)) return;
assertTrue("TimeUnitFormat: setLocale", (*tmf_en == tmf_fr));
delete tmf_en;
TimeUnitFormat* en_long = new TimeUnitFormat(Locale("en"), UTMUTFMT_FULL_STYLE, status);
if (!assertSuccess("TimeUnitFormat(en...)", status)) return;
delete en_long;
TimeUnitFormat* en_short = new TimeUnitFormat(Locale("en"), UTMUTFMT_ABBREVIATED_STYLE, status);
if (!assertSuccess("TimeUnitFormat(en...)", status)) return;
delete en_short;
TimeUnitFormat* format = new TimeUnitFormat(status);
format->setLocale(Locale("zh"), status);
format->setNumberFormat(*numberFmt, status);
//.........这里部分代码省略.........
示例2: testAPI
void TimeUnitTest::testAPI() {
//================= TimeUnit =================
UErrorCode status = U_ZERO_ERROR;
TimeUnit* tmunit = TimeUnit::createInstance(TimeUnit::UTIMEUNIT_YEAR, status);
if (!assertSuccess("TimeUnit::createInstance", status)) return;
TimeUnit* another = (TimeUnit*)tmunit->clone();
TimeUnit third(*tmunit);
TimeUnit fourth = third;
assertTrue("orig and clone are equal", (*tmunit == *another));
assertTrue("copied and assigned are equal", (third == fourth));
TimeUnit* tmunit_m = TimeUnit::createInstance(TimeUnit::UTIMEUNIT_MONTH, status);
assertTrue("year != month", (*tmunit != *tmunit_m));
TimeUnit::UTimeUnitFields field = tmunit_m->getTimeUnitField();
assertTrue("field of month time unit is month", (field == TimeUnit::UTIMEUNIT_MONTH));
//===== Interoperability with MeasureUnit ======
MeasureUnit **ptrs = new MeasureUnit *[TimeUnit::UTIMEUNIT_FIELD_COUNT];
ptrs[TimeUnit::UTIMEUNIT_YEAR] = MeasureUnit::createYear(status);
ptrs[TimeUnit::UTIMEUNIT_MONTH] = MeasureUnit::createMonth(status);
ptrs[TimeUnit::UTIMEUNIT_DAY] = MeasureUnit::createDay(status);
ptrs[TimeUnit::UTIMEUNIT_WEEK] = MeasureUnit::createWeek(status);
ptrs[TimeUnit::UTIMEUNIT_HOUR] = MeasureUnit::createHour(status);
ptrs[TimeUnit::UTIMEUNIT_MINUTE] = MeasureUnit::createMinute(status);
ptrs[TimeUnit::UTIMEUNIT_SECOND] = MeasureUnit::createSecond(status);
if (!assertSuccess("TimeUnit::createInstance", status)) return;
for (TimeUnit::UTimeUnitFields j = TimeUnit::UTIMEUNIT_YEAR;
j < TimeUnit::UTIMEUNIT_FIELD_COUNT;
j = (TimeUnit::UTimeUnitFields)(j+1)) {
MeasureUnit *ptr = TimeUnit::createInstance(j, status);
if (!assertSuccess("TimeUnit::createInstance", status)) return;
// We have to convert *ptr to a MeasureUnit or else == will fail over
// differing types (TimeUnit vs. MeasureUnit).
assertTrue(
"Time unit should be equal to corresponding MeasureUnit",
MeasureUnit(*ptr) == *ptrs[j]);
delete ptr;
}
delete tmunit;
delete another;
delete tmunit_m;
for (int i = 0; i < TimeUnit::UTIMEUNIT_FIELD_COUNT; ++i) {
delete ptrs[i];
}
delete [] ptrs;
//
//================= TimeUnitAmount =================
Formattable formattable((int32_t)2);
TimeUnitAmount tma_long(formattable, TimeUnit::UTIMEUNIT_DAY, status);
if (!assertSuccess("TimeUnitAmount(formattable...)", status)) return;
formattable.setDouble(2);
TimeUnitAmount tma_double(formattable, TimeUnit::UTIMEUNIT_DAY, status);
if (!assertSuccess("TimeUnitAmount(formattable...)", status)) return;
formattable.setDouble(3);
TimeUnitAmount tma_double_3(formattable, TimeUnit::UTIMEUNIT_DAY, status);
if (!assertSuccess("TimeUnitAmount(formattable...)", status)) return;
TimeUnitAmount tma(2, TimeUnit::UTIMEUNIT_DAY, status);
if (!assertSuccess("TimeUnitAmount(number...)", status)) return;
TimeUnitAmount tma_h(2, TimeUnit::UTIMEUNIT_HOUR, status);
if (!assertSuccess("TimeUnitAmount(number...)", status)) return;
TimeUnitAmount second(tma);
TimeUnitAmount third_tma = tma;
TimeUnitAmount* fourth_tma = (TimeUnitAmount*)tma.clone();
assertTrue("orig and copy are equal", (second == tma));
assertTrue("clone and assigned are equal", (third_tma == *fourth_tma));
assertTrue("different if number diff", (tma_double != tma_double_3));
assertTrue("different if number type diff", (tma_double != tma_long));
assertTrue("different if time unit diff", (tma != tma_h));
assertTrue("same even different constructor", (tma_double == tma));
assertTrue("getTimeUnitField", (tma.getTimeUnitField() == TimeUnit::UTIMEUNIT_DAY));
delete fourth_tma;
//
//================= TimeUnitFormat =================
//
TimeUnitFormat* tmf_en = new TimeUnitFormat(Locale("en"), status);
if (!assertSuccess("TimeUnitFormat(en...)", status, TRUE)) return;
TimeUnitFormat tmf_fr(Locale("fr"), status);
if (!assertSuccess("TimeUnitFormat(fr...)", status)) return;
assertTrue("TimeUnitFormat: en and fr diff", (*tmf_en != tmf_fr));
TimeUnitFormat tmf_assign = *tmf_en;
assertTrue("TimeUnitFormat: orig and assign are equal", (*tmf_en == tmf_assign));
TimeUnitFormat tmf_copy(tmf_fr);
//.........这里部分代码省略.........