1 /*********************************************************************** 2 * Copyright (C) 2016 and later: Unicode, Inc. and others. 3 * License & terms of use: http://www.unicode.org/copyright.html#License 4 *********************************************************************** 5 *********************************************************************** 6 * COPYRIGHT: 7 * Copyright (c) 1999-2002, International Business Machines Corporation and 8 * others. All Rights Reserved. 9 ***********************************************************************/ 10 11 #include "unicode/translit.h" 12 #include "unicode/rbt.h" 13 #include "unicode/unistr.h" 14 #include "unicode/calendar.h" 15 #include "unicode/datefmt.h" 16 #include <stdio.h> 17 #include <stdlib.h> 18 #include "util.h" 19 #include "unaccent.h" 20 21 int main(int argc, char **argv) { 22 23 Calendar *cal; 24 DateFormat *fmt; 25 DateFormat *defFmt; 26 Transliterator *greek_latin; 27 UErrorCode status = U_ZERO_ERROR; 28 Locale greece("el", "GR"); 29 UnicodeString str, str2; 30 31 // Create a calendar in the Greek locale 32 cal = Calendar::createInstance(greece, status); 33 check(status, "Calendar::createInstance"); 34 35 // Create a formatter 36 fmt = DateFormat::createDateInstance(DateFormat::kFull, greece); 37 fmt->setCalendar(*cal); 38 39 // Create a default formatter 40 defFmt = DateFormat::createDateInstance(DateFormat::kFull); 41 defFmt->setCalendar(*cal); 42 43 // Create a Greek-Latin Transliterator 44 greek_latin = Transliterator::createInstance("Greek-Latin"); 45 if (greek_latin == 0) { 46 printf("ERROR: Transliterator::createInstance() failed\n"); 47 exit(1); 48 } 49 50 // Loop over various months 51 for (int32_t month = Calendar::JANUARY; 52 month <= Calendar::DECEMBER; 53 ++month) { 54 55 // Set the calendar to a date 56 cal->clear(); 57 cal->set(1999, month, 4); 58 59 // Format the date in default locale 60 str.remove(); 61 defFmt->format(cal->getTime(status), str, status); 62 check(status, "DateFormat::format"); 63 printf("Date: "); 64 uprintf(escape(str)); 65 printf("\n"); 66 67 // Format the date for Greece 68 str.remove(); 69 fmt->format(cal->getTime(status), str, status); 70 check(status, "DateFormat::format"); 71 printf("Greek formatted date: "); 72 uprintf(escape(str)); 73 printf("\n"); 74 75 // Transliterate result 76 greek_latin->transliterate(str); 77 printf("Transliterated via Greek-Latin: "); 78 uprintf(escape(str)); 79 printf("\n\n"); 80 } 81 82 // Clean up 83 delete fmt; 84 delete cal; 85 delete greek_latin; 86 87 printf("Exiting successfully\n"); 88 return 0; 89 } 90