Home | History | Annotate | Download | only in answers
      1 /***********************************************************************
      2  *  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