ACIL FM
Dark
Refresh
Current DIR:
/usr/share/doc/libicu-devel/samples/dtitvfmtsample
/
usr
share
doc
libicu-devel
samples
dtitvfmtsample
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
dtitvfmtsample.cpp
5.77 MB
chmod
View
DL
Edit
Rename
Delete
dtitvfmtsample.vcxproj
7.69 MB
chmod
View
DL
Edit
Rename
Delete
dtitvfmtsample.vcxproj.filters
942 B
chmod
View
DL
Edit
Rename
Delete
Edit file: /usr/share/doc/libicu-devel/samples/dtitvfmtsample/dtitvfmtsample.cpp
// © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /****************************************************************************** * Copyright (C) 2008-2014, International Business Machines Corporation and * others. All Rights Reserved. ******************************************************************************* */ //! [dtitvfmtPreDefined1] #include <iostream> #include "unicode/dtitvfmt.h" #include "unicode/ustdio.h" //! [dtitvfmtPreDefined1] using namespace std; using namespace icu; static void dtitvfmtPreDefined() { u_printf("===============================================================================\n"); u_printf(" dtitvfmtPreDefined()\n"); u_printf("\n"); u_printf(" Use DateIntervalFormat to get date interval format for pre-defined skeletons:\n"); u_printf(" yMMMd, MMMMd, jm per locale\n"); u_printf("===============================================================================\n"); //! [dtitvfmtPreDefined] UFILE *out = u_finit(stdout, NULL, "UTF-8"); UErrorCode status =U_ZERO_ERROR; // create 3 Date Intervals UnicodeString data[] = { UnicodeString("2007-10-10 10:10:10"), UnicodeString("2008-10-10 10:10:10"), UnicodeString("2008-11-10 10:10:10"), UnicodeString("2008-11-10 15:10:10") }; Calendar *cal = Calendar::createInstance(status); cal->set(2007,10,10,10,10,10); UDate date1 = cal->getTime(status); cal->set(2008,10,10,10,10,10); UDate date2 = cal->getTime(status); cal->set(2008,11,10,10,10,10); UDate date3 = cal->getTime(status); cal->set(2008,11,10,15,10,10); UDate date4 = cal->getTime(status); DateInterval* dtitvsample[] = { new DateInterval(date1,date2), new DateInterval(date2,date3), new DateInterval(date3,date4), }; UnicodeString skeletons[] = { UnicodeString("yMMMd"), UnicodeString("MMMMd"), UnicodeString("jm"), 0, }; u_fprintf(out,"%-10s%-22s%-22s%-35s%-35s\n", "Skeleton","from","to","Date Interval in en_US","Date Interval in Ja"); int i=0; UnicodeString formatEn,formatJa; FieldPosition pos=0; for (int j=0;skeletons[j]!=NULL ;j++) { u_fprintf(out,"%-10S%-22S%-22S",skeletons[j].getTerminatedBuffer(),data[i].getTerminatedBuffer(),data[i+1].getTerminatedBuffer()); //create a DateIntervalFormat instance for given skeleton, locale DateIntervalFormat* dtitvfmtEn = DateIntervalFormat::createInstance(skeletons[j], Locale::getEnglish(),status); DateIntervalFormat* dtitvfmtJa = DateIntervalFormat::createInstance(skeletons[j], Locale::getJapanese(),status); formatEn.remove(); formatJa.remove(); //get the DateIntervalFormat dtitvfmtEn->format(dtitvsample[i],formatEn,pos,status); dtitvfmtJa->format(dtitvsample[i],formatJa,pos,status); u_fprintf(out,"%-35S%-35S\n", formatEn.getTerminatedBuffer(),formatJa.getTerminatedBuffer()); delete dtitvfmtEn; delete dtitvfmtJa; i++; } u_fclose(out); //! [dtitvfmtPreDefined] } static void dtitvfmtCustomized() { u_printf("===============================================================================\n"); u_printf("\n"); u_printf(" dtitvfmtCustomized()\n"); u_printf("\n"); u_printf(" Use DateIntervalFormat to create customized date interval format for yMMMd, Hm"); u_printf("\n"); u_printf("================================================================================\n"); //! [dtitvfmtCustomized] UFILE *out = u_finit(stdout, NULL, "UTF-8"); UErrorCode status =U_ZERO_ERROR; UnicodeString data[] = { UnicodeString("2007-9-10 10:10:10"), UnicodeString("2007-10-10 10:10:10"), UnicodeString("2007-10-10 22:10:10") }; // to create 2 Date Intervals Calendar *cal1 = Calendar::createInstance(status); cal1->set(2007,9,10,10,10,10); Calendar *cal2 = Calendar::createInstance(status); cal2->set(2007,10,10,10,10,10); Calendar *cal3 = Calendar::createInstance(status); cal3->set(2007,10,10,22,10,10); DateInterval* dtitvsample[] = { new DateInterval(cal1->getTime(status),cal2->getTime(status)), new DateInterval(cal2->getTime(status),cal3->getTime(status)) }; UnicodeString skeletons[] = { UnicodeString("yMMMd"), UnicodeString("Hm"), 0, }; u_printf("%-10s%-22s%-22s%-45s%-35s\n", "Skeleton", "from","to", "Date Interval in en_US","Date Interval in Ja"); // Create an empty DateIntervalInfo object DateIntervalInfo dtitvinf = DateIntervalInfo(status); // Set Date Time internal pattern for MONTH, HOUR_OF_DAY dtitvinf.setIntervalPattern("yMMMd", UCAL_MONTH, "y 'Diff' MMM d --- MMM d",status); dtitvinf.setIntervalPattern("Hm", UCAL_HOUR_OF_DAY, "yyyy MMM d HH:mm ~ HH:mm",status); // Set fallback interval pattern dtitvinf.setFallbackIntervalPattern("{0} ~~~ {1}",status); // Get the DateIntervalFormat with the custom pattern UnicodeString formatEn,formatJa; FieldPosition pos=0; for (int i=0;i<2;i++){ for (int j=0;skeletons[j]!=NULL;j++) { u_fprintf(out,"%-10S%-22S%-22S", skeletons[i].getTerminatedBuffer(),data[j].getTerminatedBuffer(), data[j+1].getTerminatedBuffer()); DateIntervalFormat* dtitvfmtEn = DateIntervalFormat::createInstance(skeletons[i],Locale::getEnglish(),dtitvinf,status); DateIntervalFormat* dtitvfmtJa = DateIntervalFormat::createInstance(skeletons[i],Locale::getJapanese(),dtitvinf,status); formatEn.remove(); formatJa.remove(); dtitvfmtEn->format(dtitvsample[j],formatEn,pos,status); dtitvfmtJa->format(dtitvsample[j],formatJa,pos,status); u_fprintf(out,"%-45S%-35S\n", formatEn.getTerminatedBuffer(),formatJa.getTerminatedBuffer()); } } u_fclose(out); //! [dtitvfmtCustomized] } int main (int argc, char* argv[]) { dtitvfmtPreDefined(); dtitvfmtCustomized(); return 0; }
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply