16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/******************************************************************** 26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * COPYRIGHT: 36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * Copyright (c) 1999-2002, International Business Machines Corporation and 46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org * others. All Rights Reserved. 56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ********************************************************************/ 66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/translit.h" 86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/rbt.h" 96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/unistr.h" 106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/calendar.h" 116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/datefmt.h" 126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <stdio.h> 136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <stdlib.h> 146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "util.h" 156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unaccent.h" 166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgint main(int argc, char **argv) { 186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org Calendar *cal; 206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org DateFormat *fmt; 216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org DateFormat *defFmt; 226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org Transliterator *greek_latin; 236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UErrorCode status = U_ZERO_ERROR; 246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org Locale greece("el", "GR"); 256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org UnicodeString str, str2; 266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // Create a calendar in the Greek locale 286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org cal = Calendar::createInstance(greece, status); 296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org check(status, "Calendar::createInstance"); 306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // Create a formatter 326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org fmt = DateFormat::createDateInstance(DateFormat::kFull, greece); 336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org fmt->setCalendar(*cal); 346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // Create a default formatter 366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org defFmt = DateFormat::createDateInstance(DateFormat::kFull); 376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org defFmt->setCalendar(*cal); 386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // Create a Greek-Latin Transliterator 406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org greek_latin = Transliterator::createInstance("Greek-Latin"); 416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org if (greek_latin == 0) { 426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org printf("ERROR: Transliterator::createInstance() failed\n"); 436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org exit(1); 446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org } 456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // Loop over various months 476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org for (int32_t month = Calendar::JANUARY; 486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org month <= Calendar::DECEMBER; 496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org ++month) { 506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // Set the calendar to a date 526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org cal->clear(); 536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org cal->set(1999, month, 4); 546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // Format the date in default locale 566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org str.remove(); 576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org defFmt->format(cal->getTime(status), str, status); 586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org check(status, "DateFormat::format"); 596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org printf("Date: "); 606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org uprintf(escape(str)); 616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org printf("\n"); 626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // Format the date for Greece 646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org str.remove(); 656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org fmt->format(cal->getTime(status), str, status); 666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org check(status, "DateFormat::format"); 676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org printf("Greek formatted date: "); 686f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org uprintf(escape(str)); 696f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org printf("\n"); 706f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 716f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // Transliterate result 726f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org greek_latin->transliterate(str); 736f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org printf("Transliterated via Greek-Latin: "); 746f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org uprintf(escape(str)); 756f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org printf("\n\n"); 766f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org } 776f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 786f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org // Clean up 796f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org delete fmt; 806f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org delete cal; 816f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org delete greek_latin; 826f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org 836f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org printf("Exiting successfully\n"); 846f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org return 0; 856f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org} 86