16f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/*
26f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*******************************************************************************
36f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*
46f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   Copyright (C) 2002-2012, International Business Machines
56f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*   Corporation and others.  All Rights Reserved.
66f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*
76f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*******************************************************************************
86f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org*/
96f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
106f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/calendar.h"
116f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include "unicode/gregocal.h"
126f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org#include <stdio.h>
136f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
146f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgextern "C" void c_main();
156f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
166f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgvoid cpp_main()
176f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
186f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  UErrorCode status = U_ZERO_ERROR;
196f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  puts("C++ sample");
206f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  GregorianCalendar* gc = new GregorianCalendar(status);
216f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  if (U_FAILURE(status)) {
226f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    puts("Couldn't create GregorianCalendar");
236f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    return;
246f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  }
256f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  /* set up the date */
266f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  gc->set(2000, UCAL_FEBRUARY, 26);
276f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  gc->set(UCAL_HOUR_OF_DAY, 23);
286f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  gc->set(UCAL_MINUTE, 0);
296f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  gc->set(UCAL_SECOND, 0);
306f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  gc->set(UCAL_MILLISECOND, 0);
316f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  /* Iterate through the days and print it out. */
326f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  for (int32_t i = 0; i < 30; i++) {
336f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /* print out the date. */
346f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /* You should use the DateFormat to properly format it */
356f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    printf("year: %d, month: %d (%d in the implementation), day: %d\n",
366f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org           gc->get(UCAL_YEAR, status),
376f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org           gc->get(UCAL_MONTH, status) + 1,
386f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org           gc->get(UCAL_MONTH, status),
396f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org           gc->get(UCAL_DATE, status));
406f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if (U_FAILURE(status))
416f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      {
426f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        puts("Calendar::get failed");
436f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org        return;
446f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      }
456f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    /* Add a day to the date */
466f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    gc->add(UCAL_DATE, 1, status);
476f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    if (U_FAILURE(status)) {
486f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      puts("Calendar::add failed");
496f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org      return;
506f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org    }
516f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  }
526f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  delete gc;
536f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org}
546f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
556f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
566f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org/* Creating and using text boundaries */
576f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.orgint main( void )
586f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org{
596f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  puts("Date-Calendar sample program");
606f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
616f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  cpp_main();
626f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
636f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  c_main();
646f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
656f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org  return 0;
666f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org}
676f31ac30b9092fd02a8c97e5216cf53f3e4fae4jshin@chromium.org
68