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