Home | History | Annotate | Download | only in datecal
      1 /*
      2 *******************************************************************************
      3 *
      4 *   Copyright (C) 2002-2003, International Business Machines
      5 *   Corporation and others.  All Rights Reserved.
      6 *
      7 *******************************************************************************
      8 */
      9 
     10 #include "unicode/ucal.h"
     11 #include <stdio.h>
     12 
     13 void c_main()
     14 {
     15   puts("----");
     16   puts("C Sample");
     17 
     18 UErrorCode status = U_ZERO_ERROR;
     19 int32_t i;
     20 UCalendar *cal = ucal_open(NULL, -1, NULL, UCAL_GREGORIAN, &status);
     21 if (U_FAILURE(status)) {
     22       puts("Couldn't create GregorianCalendar");
     23       return;
     24       }
     25       /* set up the date */
     26       ucal_set(cal, UCAL_YEAR, 2000);
     27       ucal_set(cal, UCAL_MONTH, UCAL_FEBRUARY);   /* FEBRUARY */
     28       ucal_set(cal, UCAL_DATE, 26);
     29       ucal_set(cal, UCAL_HOUR_OF_DAY, 23);
     30       ucal_set(cal, UCAL_MINUTE, 0);
     31       ucal_set(cal, UCAL_SECOND, 0);
     32       ucal_set(cal, UCAL_MILLISECOND, 0);
     33       /* Iterate through the days and print it out. */
     34       for (i = 0; i < 30; i++) {
     35           /* print out the date. */
     36           /* You should use the udat_* API to properly format it */
     37           printf("year: %d, month: %d (%d in the implementation), day: %d\n",
     38               ucal_get(cal, UCAL_YEAR, &status),
     39               ucal_get(cal, UCAL_MONTH, &status) + 1,
     40               ucal_get(cal, UCAL_MONTH, &status),
     41               ucal_get(cal, UCAL_DATE, &status));
     42           if (U_FAILURE(status)) {
     43           puts("Calendar::get failed");
     44           return;
     45           }
     46           /* Add a day to the date */
     47           ucal_add(cal, UCAL_DATE, 1, &status);
     48           if (U_FAILURE(status))
     49           {
     50               puts("Calendar::add failed");
     51               return;
     52           }
     53       }
     54       ucal_close(cal);
     55 }
     56